Roxygen2 kullanarak bir örnek nasıl çalıştırılmaz?


96

Şu anda Bing Haritalar Anahtarına sahip olmaya dayanan bir coğrafi kodlama işlevi yazıyorum . Açıkçası benimkini yayınlamamayı tercih ederim ve örnekler bir tane olmadan başarısız olur.

Kullanıcıların manuel olarak çalıştırması, ancak sırasında çalıştırmaması için bir örneği nasıl dahil edebilirim R CMD check?

Yanıtlar:


149

Kullanım \dontrun{}

#'@examples
#'\dontrun{
#'geocode("3817 Spruce St, Philadelphia, PA 19104")
#'geocode("Philadelphia, PA")
#'dat <- data.frame(value=runif(3),address=c("3817 Spruce St, Philadelphia, PA 19104","Philadelphia, PA","Neverneverland"))
#'geocode(dat)
#'}

2
Bu belgelenmiştir ?exampleve Yazma R Extensions
GSEE

2
@Jeroen, roxygen2bunun @exampleetiketi oluşturduğuna inanıyorum , bu yüzden bunun bir roxygen2sorun olduğunu düşünüyorum . Sanmıyorum \example{}geçerlidir - bkz cran.r-project.org/doc/manuals/...
GSEE

2
Konu başlığından yola çıkarak, soru roxygen2 sözdizimi ile ilgili ve .Rd sözdizimi ile ilgili değil?
Jeroen

Cevap için teşekkürler. İlk önce benim için işe yaramadı çünkü @exampleonun yerine kullanıyordum @examples. Her iki etiket de RStudio otomatik tamamlamada gelir. Şimdi mutluyum.
Paul Rougieux

5
Bence istenen şeyin doğru cevabı dontrun değil dontrun değil. Örnek ve stackoverflow.com/questions/12038160/… konusuna bakın . Ayrıca cran.r-project.org/web/packages/roxygen2/vignettes/rd.html adresine bakın .
Julian Karch

37

Örneğiniz için kullanabilirsiniz \donttest{}. Parçacık belgelerinizde sağlanacak ancak R CMD Kontrolü ile test edilmeyecektir.

Daha fazla bilgi için -> ?example

#' @example
\donttest{
    2^2
    }

Bu 2 ^ 2 koştuğunuzda koşmayacak devtools::check()

Yargılamadan önce kendiniz kontrol edin. :)


16
Görünüşe göre bu, dontrun yerine kabul edilen cevap olmalı. From? Example 'donttest, genellikle çalıştırılması gereken, ancak paket denetimi sırasında çalıştırılmayan kodu kapsar.' oysa 'dontrun çalıştırılmaması gereken kodu kapsar.' Ayrıca vinç bakımcılarından dontrun'dan donttest'e geçmek için bir yorum aldım.
Julian Karch

3
@ JulianKarls ile tamamen katılıyorum. CRAN bakımcılarından da aynı geri bildirimleri aldım.
David

11

Kullandığınız olanlar için @example path/to/example.Ryerine @examplesetiketinin kullanabilirsiniz \dontrundoğrudan çevreyi example.Rdosyası. Örneğin

# example.R
\dontrun{
# this is a long running example
for(i in seq(1, 1e5)) { lm(mpg ~ wt, data = mtcars) }
}

# some other shorter example
2 + 2

1
bu benim için çalışmıyor (Win 10, 64 bit, R sürüm 3.5.0'da çalışıyor)
JBJ

2

Ari, ayrıca roxygen2 (sürüm 4.1.0) kullanıyorum. Aşağıdaki fonksiyon (gctemplate) tanımımdaki roxygen2 işaretimin gerçek bölümün başına kadar sonudur.

#' @examples
#' ## List all G-causalities in a VAR system of 5 variables that will be searched in the pattern of 1 
#' ## causer (like-independent) variable and 2 like-dependents conditional on 5-(1+2)=2 of the remaining 
#' ## variable(s) in the system. Variables are assigned to numbers 1 to nvars. 
#' ## "1 2 5 3 4" in the resulting line of gctemplate is to indicate the 
#' ## (conditonal, partial, etc.) G-causality from variable 1 to variables 2 and 5 
#' ## conditonal on variables 3 and 4.
#' # gctemplate(5,1,2)
#' ## The number of all G-causalities to be searched in the above pattern.
#' #dim(gctemplate(5,1,2))[[1]]
#' @importFrom combinat combn
#' @export
gctemplate <- function(nvars, ncausers, ndependents){
...

GSee'nin dontrun yöntemini biliyorum.
Benim tekniğimde, sayısal örnek ve sayısal örneği açıklayan metin yorumlardır. Bu ikisi arasında fark yaratmak için girinti kullanıyorum; "#" Sonrasında sırasıyla 1 keskin ve 2 keskin olduğuna dikkat edin. Paketlerimde her zaman yukarıdaki "# '## / #' #" tekniğini kullanırım. Kullanıcı, işlevi test etmek istediğinde kopyala-yapıştır işlemini yapmaya bırakılır. Bu teknik - bana göre - yazılım kodlama felsefesinin klasik yorum bombardımanı ile daha paraleldir.


14
Kullanırsanız dontrun{}, kullanıcı arayabilir example(myFunction, run.dontrun=TRUE), oysa örnekleri basitçe yorumlarsanız, örnekleri kopyalamak / yapıştırmak dışında çalıştırmanın bir yolu yoktur.
GSee
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.