roxygen2를 사용하여 예제를 실행하지 않는 방법은 무엇입니까?


96

지금 Bing Maps 키에 의존 하는 지오 코딩 기능을 작성 중 입니다. 분명히 나는 ​​내 것을 게시하지 않고 예제가 없으면 실패합니다.

사용자가 수동으로 실행하지만 실행하지 않는 예제를 어떻게 포함 R CMD check합니까?

답변:


149

사용하다 \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
이것은 문서화되어 ?example있고 R Extensions 작성
GSee

2
@Jeroen, 나는 믿고 roxygen2위쪽 만들어 @example내가는 생각 때문에, 태그 roxygen2문제. 나는 \example{}유효 하지 않다고 생각 합니다 -cran.r-project.org/doc/manuals/…
GSee

2
주제 제목으로 볼 때 질문은 .Rd 구문이 아니라 roxygen2 구문에 관한 것입니까?
Jeroen 2013

답변 해주셔서 감사합니다. @example대신을 사용했기 때문에 처음에는 작동하지 않았습니다 @examples. 두 태그 모두 RStudio 자동 완성에 표시됩니다. 난 지금 행복해.
Paul Rougieux 2015

5
나는 요구되는 것에 대한 정답이 donttest이고 dontrun이라고 생각한다. ? example 및 stackoverflow.com/questions/12038160/…을 참조하십시오 . cran.r-project.org/web/packages/roxygen2/vignettes/rd.html 도 참조하십시오 .
Julian Karch

37

귀하 \donttest{}의 모범에 사용할 수 있습니다 . 스 니펫은 문서에 제공되지만 R CMD 검사로 테스트되지는 않습니다.

더 많은 정보를 원하시면-> ?example

#' @example
\donttest{
    2^2
    }

이 2 ^ 2는 달릴 때 실행되지 않습니다. devtools::check()

심사하기 전에 직접 확인하십시오. :)


16
이것은 dontrun 대신 받아 들여지는 대답이어야합니다. ? example에서 'donttest는 일반적으로 실행되어야하는 코드를 포함하지만 패키지 검사 중에는 아닙니다.' 반면 'dontrun은 실행되지 않아야하는 코드를 포함합니다.' 나는 또한 dontrun에서 donttest로 전환하기 위해 cran 관리자로부터 코멘트를 받았다.
Julian Karch

3
@JulianKarls와 완전히 동의합니다. CRAN 관리자로부터 동일한 피드백을 받았습니다.
David

11

태그 @example path/to/example.R대신 사용하는 사람들을 위해 파일 에서 직접 환경을 @examples사용할 수 있습니다 . 예를 들면\dontrunexample.R

# 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
이것은 나를 위해 작동하지 않습니다 (Win 10, 64 비트, R 버전 3.5.0에서 실행)
JBJ

2

Ari, 저는 roxygen2 (버전 4.1.0)도 사용합니다. 다음은 실제 부분이 시작될 때까지 내 함수 (gctemplate) 정의에서 내 roxygen2 마크 업의 끝입니다.

#' @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의 dontrun 방법을 알고 있습니다.
내 기술에서 숫자 예제와 숫자 예제를 설명하는 텍스트는 모두 주석입니다. 나는이 둘을 구별하기 위해 들여 쓰기를 사용합니다. "# '"뒤에는 각각 1 개의 샤프와 2 개의 샤프가 있습니다. 나는 항상 패키지에서 위의 "# '## / #'#"기술을 사용합니다. 사용자는 함수를 테스트 할 때마다 복사-붙여 넣기 작업을 수행해야합니다. 이 기술은-나에 따르면-소프트웨어 코딩 철학의 고전적인 주석 폭격과 더 유사합니다.


14
을 사용 dontrun{}하면 사용자가를 호출 할 수 example(myFunction, run.dontrun=TRUE)있지만 예제를 주석 처리하면 복사 / 붙여 넣기 외에 다른 방법으로 예제를 실행할 수 없습니다.
GSee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.