2010-02-13 12 views
34

R'da programlama için bazı iyi uygulamalar nelerdir?R'de programlama için hangi en iyi uygulamaları kullanıyorsunuz?

R, her zaman kullanmadığım özel bir dil olduğundan, genellikle ihtiyacım olanı yapan bazı hızlı komut dosyalarını bir araya getiriyorum.

Ama temiz ve verimli R kod yazmak için bazı ipuçları nelerdir?

+0

İlgili ilgi çekici bir konu: http://stackoverflow.com/questions/1295955/what-is-the-most-useful-r-trick (SO, bunları bulmak için gerçekten daha iyi bir iş yapmalıdır, jQuery ve Windows 7 "ilgili" olarak sorular. – Frank

cevap

14

ben this previous question gelen iş akışını mı, Josh Reich'in yükleyin, temiz, Func öneriyoruz. Ayrıca

Böyle Google's R Style Guide olarak kodlama kurallarına izlemenizi öneririz. Kodlama stil kılavuzu kullanmak, kodu daha kolay okur.

+3

Keşke 'dot' adlandırma kuralı bu Stil Kılavuzu'nda (örneğin, some.variable.name) desteklenmediyse. Onun tarafında tarih var ve çoğu R kodu bu şekilde yazılıyor, yine de bir hayran değil. – doug

+1

Ben doug katılıyorum. Ben camelCase'i kendim kullanıyorum. Sürüm kontrolü gibi stil kılavuzları, hangisini seçtiğinizden ve onu seçip kullanma konusunda daha azdır. –

19

Yaklaşımınızı "hızlı komut dosyaları kesmek" olduğunu belirterek bazı ipuçları verdiniz. Eğer en iyi uygulamaları ve yapı istiyorsanız, basit kurulan iyi uygulamalar CRAN dan izleyin:

  • bir paket oluşturmak, bu çok kullanışlı
  • olarak birçok kişi belirttiğimiz hangi R CMD check çalışan kapı açar Bir paketin olması, kodu belgelemek zorunda kaldığınız için sahnesini yazmanıza yardımcı olur; size bir paket var bir kere bu yayınlanmaya başlayacak şekilde
  • , R CMD check sırasında belgelerin \examples{} bölümünde kod eklemek İyi Bir Şey (TM) ve sen gerileme alıştıktan sonra regresyon testi
  • için kolay giriş sağlar test, RUnit gibi bir paket kullanmaya başla; Bu gerçekten Google Style Guide için JD'nin işaretçi çok iyi biridir iyi uygulamalar
  • olduğunu. Bu, örn. Henrik's R Coding Convention birkaç yıl öncesine dayanır; ve ayrıca Aksi Hadley's riff on Google's style guide
  • vardır ihtiyar-ama-Goldie de özellikle paketlerin kullanımı ile ilgili, tamamen mevcut cevapları ile anlaşmak
6

geçerlidir 'meslektaşlarınız ve yazarları yaptığımı yap'. Paketler, en iyi uygulamaların (R CMD CHECK ile birlikte) uygulanmasına gerçekten yardımcı olan birçok disiplin, dokümantasyon ve yapı gerektirir. Bunun için the codetools package numaralı telefonu kullanabilirsiniz. Dökümantasyon için rox paketini kullanın. Bunun ötesinde

, sana vektör argümanlar sunmak ve vektörleri elde edebilmek gerektiğini, yani kodunuzu vektörize ama özellikle senin fonksiyonlarını vektörize için her türlü çabayı sadece bu bile böyle şeylerden (döndürülen tavsiye veritabanı çağrıları). Bu, uzun vadede kod verimliliğinizi ve netliğinizi gerçekten iyileştirecektir.

Son olarak, gerçekten bir rapor hazırlamakta zaman açık okur tekrarlanabilir araştırmalara kodumu organize Sweave gibi bir şey kullanmak ister. Bununla birlikte önbellek paketini kullanmanızı öneriyorum.

+0

Cevap Shane için teşekkürler. "Kod takımları" paketinin kullanımına ilişkin örnekleriniz var mı? –

2

Verimlilik için, for döngülerindeki vektör işlemlerini tercih edin.

1

Bu genel olarak iyi bir programlama uygulamasıdır, ancak SVN gibi bir sürüm kontrol sistemini kullanarak kodunuzu yönetin.

İlgili konular