2012-05-10 19 views
23

Bu cevabın bir R paketinin yazılması için kılavuzlarda olduğunu bildiğim için özür dileriz, ancak okuma ve diğer paketin Collate alanlarına bakarken bu alanın% 100'ünü anlayamıyorum . Düz dilde (benimki İngilizce) bir paketin Açıklama dosyasındaki Collate alanı ne yapar? Biri oraya koymak ister?Paket içinde harmanlama alanı Açıklama

cevap

22

Sanırım, R/ dizindeki dosyaların (sözdizimsel öntanımlı değerin tersine) kaynaklandığı sıralamanın hala önemli olduğu bir zaman ve durumdan geliyor. .onLoad() işlevinin neden çoğu zaman zzz.R adlı bir dosyada yer aldığına benzer bir neden.

Değeri için paketlerimden biri, DESCRIPTION içindeki "Harmanla:" alanını kullanmaz.

Düzenleme: Ve ampirik önlemlerin seviyorlar gibi her CRAN kaynaklarıyla bir makinede hızlı bir grep geçerli:

$ grep ^Collate */DESCRIPTION | wc -l 
292 
$ ls -1 */DESCRIPTION | wc -l 
3779 

Ve buda paketlerin 7.7% 'dir. gerçekten gerçekten yapmanız gerekmedikçe bu konuda endişelenmeyeceğim.

+0

Bir ton teşekkürler, bu yararlı. –

+8

Bioconductor paketlerinin yaklaşık% 30'u bir Collate alanına sahiptir. "Bir zamandan itibaren" doğru izlenimi bıraktığından emin değilsiniz, bir tanesi hala dosyalara kod düzenler ve dosyaların harmanlandığı sıralar. Örneğin, S4 yöntemlerinin jenerikten sonra tanımlanması gerekir ve sınıflar bunları kullanan metotlardan veya bunları içeren sınıflardan önce tanımlanmalıdır. C yerel olmayanlarda sözcükbilimsel sıralamadaki sapıklık, otomatik harmanlama düzenine (belki de R bir C yerel dosyasında dosyaları harmanlıyor mu?) Benim için çok ihtiyatlı davranıyor. –

+0

Hah - Neredeyse S4 sınıflarıyla ilgili bir şeyler yapabileceğimi ekledim (ki hala bu kadarını hala kullanmıyorum ...) Ama sonradan bile bir tanesi bu sırayla sınıflar, jenerikler, yöntemler olabilir. Rcpp'de yaptığımız gibi aynı dosya. Yani Collate: nadiren kullanılan bir seçenek olarak yararlı kalır ve Tyler gerekli bir şey eksik değildi. –

İlgili konular