R yardım sayfalarında "çalışmıyor" ne anlama geliyor?


112

Bazen bir R yardım sayfasında yorumlarda "çalışmıyor" ifadesi görünür. "With ()" için yardım sayfasından buna bakın:

Examples
require(stats); require(graphics)
#examples from glm:
**## Not run:** 
library(MASS)
with(anorexia, {
    anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
                    family = gaussian)
    summary(anorex.1)
})
## End(**Not run**)

Örnek koddaki "çalıştırılmıyor" ne anlama geliyor?


32
sadece ilgili bir ipucu. Örnek kodu "example (glm)" vererek çalıştırabilirsiniz.
Eduardo Leoni

4
Bu iyi bir ipucu. Ve R kullanıcılarının büyük çoğunluğunun bunun farkında olmadığına bahse girerim.
Dan Goldstein

1
ancak not örneği (fn) yine de sarılmış örnek kod olmayacaktırdontRun
tim

run.dontrunparametreyi şu şekilde ayarlamanız dışındaTRUE
Moody_Mudskipper

Yanıtlar:


77

"çalıştırılmıyor", exampleişlevde çalıştırılmaması gereken kodu kapsar (örneğin, zaman alan kod bölümleri, kullanıcı etkileşimi, ...).

örneğin bkz ?example:

R Uzantıları Yazma kılavuzunda ayrıntılı olarak açıklandığı gibi , yardım sayfasının yazarı örneklerin bölümlerini iki istisna kuralı için işaretleyebilir.

  • 'dontrun' çalıştırılmaması gereken kodu kapsar.

  • 'dontshow' yardım sayfalarında görünmeyen kodu kapsar, ancak hem paket kontrol araçları hem de 'example ()' işlevi tarafından çalıştırılır. Bu daha önce 'teston' idi ve bu form hala kabul edilmektedir.


3
... bu işlevi nasıl bilmiyordum?
Matt Parker

5
Genellikle bir \ dontrun {} içine yerleştirilen sadece zaman alıcı kod değildir. Kullanıcı girişi gerektiren kodun da dontrun içinde olması gerekir, yoksa geçemezR CMD check
Dason

2
Veya: kullanıcının makinesine yüklenmemiş olabilecek bir pakete bağlı olan kod. \ Dontrun {} kullanmak için pek çok neden var
Jason

25

In "Yazma R Extensions" kılavuzu, \ örnekler hakkında bölümüne {...} söylenir

Yalnızca gösterilmesi gereken ancak çalıştırılmaması gereken metin için \ dontrun {} ve kullanıcılara gösterilmemesi gereken ancak örnek () tarafından çalıştırılacak ek test komutları için \ dontshow {} kullanabilirsiniz.

Bir paket oluşturduğunuzda, \ dontrun {} kapağındaki tüm kod yardımda şu şekilde görünür:

## Not run:
...
## End(**Not run**)

düzenleme: Bu cevap daha önceydi.


15

Bu \donttest{}, @ hadley'in R Paketlerinden (kelimesi kelimesine) eklenir ve alınır .

Bununla birlikte, örnekleme amacıyla, hataya neden olan kodu dahil etmek genellikle yararlıdır. \dontrun{}hiç kullanılmayan kodu örneğe dahil etmenize olanak sağlar. Diğer iki özel komut var. \dontshow{}çalıştırılıyor, ancak yardım sayfasında gösterilmiyor: bu, resmi olmayan testler için yararlı olabilir. \donttest{}örneklerde çalıştırılır, ancak R CMD kontrolünde otomatik olarak çalıştırılmaz. Çalışması uzun süren örnekleriniz varsa bu yararlıdır. Seçenekler aşağıda özetlenmiştir.

Command      example    help       R CMD check
\dontrun{}                 x
\dontshow{}       x                          x
\donttest{}       x        x

2
Donttest'in şimdi test edildiğini unutmayın
Tyler Rinker

1
Paket gönderimi için, .Rd'de kod bloğunun ihmal edilmesini gerekçelendiren ek yorumlarınız olması gerekiyor mu? Bir \ donttest {} örneğinden dolayı paket başarısız kontrolü yaptım ve bunu \ dontrun {} olarak değiştirmek kadar basit olup olmadığını merak ediyorum. İşlev, bir ftp'den veri indirmek içindir ve CRAN yorumu: ".Rd dosyalarında yorum yapılmaz. Example () 'nin bu bölümleri çalıştıracağını unutmayın".
Jeffrey Evans

Evet bu kadar basit olmalı.
Tyler Rinker

@TylerRinker, işlevin çalıştığının doğrulandığını mı yoksa @donttest {} içindeki kodun artık kontroller yapılırken CRAN tarafından çalıştırıldığını mı söylüyorsunuz?
tim

2
Evet, burada Hadley'in kitabından bir alıntı var: "Örnekleme amacıyla, hataya neden olan kodu eklemek genellikle yararlıdır. \ Dontrun {}, çalıştırılmayan örneğe kod eklemenize izin verir. (Eskiden benzer bir amaç için \ donttest {} kullanabiliyor, ancak aslında test edildiği için artık önerilmiyor.) "
Tyler Rinker

5

OKUNMASI GEREKEN R Paketleri Oluşturma Bölüm 5.4'ten (R Dokümantasyon Dosyaları) C & p : Friedrich Leisch tarafından hazırlanan bir Eğitim :

Örnekler bölümü çalıştırılabilir R kodu içermelidir ve kodun otomatik olarak çalıştırılması, bir paketi kontrol etmenin bir parçasıdır. Örnekler için iki özel işaretleme komutu vardır:

dontrun : \ dontrun {} içindeki her şey testler veya example () tarafından çalıştırılmaz. Bu, örneğin etkileşimli işlevler, İnternete erişim sağlayan işlevler vb. İçin yararlıdır. Uygulanamayacak örnekler vererek hayatı sizin için kolaylaştırmak için kötüye kullanmayın.


3

Buradaki kanonik örnek şunun için yardım sayfasında olabilir rm:

## Not run: 
## remove (almost) everything in the working environment.
## You will get no warning, so don't do this unless you are really sure.
rm(list = ls())

## End(Not run)

Bu çalışırsa, elbette istenmeyen etkilere neden olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.