R 도움말 페이지에서 "실행되지 않음"은 무엇을 의미합니까?


112

때때로 R 도움말 페이지에서 "실행되지 않음"이라는 문구가 주석에 나타납니다. 도움말 페이지에서 "with ()"를 확인하십시오.

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**)

예제 코드에서 "실행되지 않음"은 무엇을 의미합니까?


32
관련 팁입니다. "example (glm)"을 발행하여 예제 코드를 실행할 수 있습니다.
Eduardo Leoni

4
좋은 팁입니다. 그리고 대다수의 R 사용자는이를 인식하지 못합니다.
Dan Goldstein

1
그러나 example (fn)은 여전히 ​​예제 코드가 래핑되지 않습니다dontRun
tim

당신이 설정 한 경우를 제외시켰다 run.dontrun에 매개 변수를TRUE
Moody_Mudskipper

답변:


77

"실행되지 않음"은 example함수 에서 실행되지 않아야하는 코드를 포함합니다 (예 : 시간 소모적 인 코드 부분, 사용자 상호 작용, ...).

예를 참조하십시오 ?example:

R Extensions 작성 매뉴얼에 자세히 설명 된대로 도움말 페이지의 작성자는 두 가지 예외 규칙에 대한 예제의 일부를 마크 업할 수 있습니다.

  • 'dontrun'은 실행되지 않아야하는 코드를 포함합니다.

  • 'dontshow'는 도움말 페이지에는 보이지 않지만 패키지 검사 도구와 'example ()'함수에 의해 실행되는 코드를 포함합니다. 이전에는 'testonly'였으며 해당 양식은 여전히 ​​허용됩니다.


3
...이 기능에 대해 어떻게 몰랐습니까?
Matt Parker

5
일반적으로 \ dontrun {} 안에 넣는 것은 시간 소모적 인 코드 만이 아닙니다. 사용자 입력 요구 사항을 필요로 코드 내부뿐만 아니라 dontrun 될 수 그렇지 않으면 통과하지 않습니다R CMD check
Dason

2
또는 : 사용자의 컴퓨터에 설치되지 않은 패키지에 의존하는 코드. 사용에 많은 이유 제비 제비가있다 \ dontrun {}
제이슨

25

에서 "쓰기 R 확장" 설명서, \ 예에 대한 섹션에서 {...} 있다고한다

표시 만하고 실행해서는 안되는 텍스트에 \ dontrun {}을 사용하고 사용자에게 표시해서는 안되지만 example ()에 의해 실행되는 테스트를위한 추가 명령에는 \ dontshow {}를 사용할 수 있습니다.

패키지를 빌드하면 \ dontrun {} 클로저의 모든 코드가 도움말에 다음과 같이 표시됩니다.

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

편집 : 이 대답 은 이전이었습니다.


15

이것은 \donttest{}@hadley의 R 패키지 에서 추가 되고 가져옵니다 (verbatim) .

그러나 설명을 위해 오류를 발생시키는 코드를 포함하는 것이 유용한 경우가 많습니다. \dontrun{}사용되지 않는 코드를 예제에 포함 할 수 있습니다. 다른 두 가지 특수 명령이 있습니다. \dontshow{}실행되지만 도움말 페이지에 표시되지 않음 : 비공식 테스트에 유용 할 수 있습니다. \donttest{}예제에서는 실행되지만 R CMD 검사에서는 자동으로 실행되지 않습니다. 실행하는 데 시간이 오래 걸리는 예제가있는 경우 유용합니다. 옵션은 아래에 요약되어 있습니다.

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

2
donttest가 현재 테스트되었습니다
Tyler Rinker

1
패키지 제출의 경우 .Rd에 코드 블록 누락을 정당화하는 추가 주석이 필요합니까? \ donttest {} 예제로 인해 패키지 실패 검사를 받았으며 \ dontrun {}으로 변경하는 것이 간단한 지 궁금합니다. 이 함수는 ftp에서 데이터를 다운로드하기위한 것이며 CRAN 주석은 ".Rd 파일에서 주석 처리되지 않았습니다. example ()이 이러한 섹션을 실행합니다"입니다.
Jeffrey Evans

예, 그렇게 간단해야합니다.
Tyler Rinker 2015 년

@TylerRinker 당신은 기능이 작동하는 것으로 확인되었거나 @donttest {}의 코드가 이제 검사를 할 때 CRAN에 의해 ​​실행된다는 것을 의미합니까?
tim

2
예 여기에 Hadley의 책에서 인용 한 내용이 있습니다. "설명을 위해 오류를 발생시키는 코드를 포함하는 것이 유용 할 때가 많습니다. \ dontrun {}을 사용하면 실행되지 않는 예제에 코드를 포함 할 수 있습니다. 유사한 목적으로 \ donttest {}를 사용할 수 있지만 실제로 테스트되었으므로 더 이상 권장되지 않습니다.) "
Tyler Rinker

5

반드시 읽어야 할 R 패키지 생성 : Friedrich Leisch 의 튜토리얼 5.4 장 (R 문서 파일)의 C & p :

예제 섹션에는 실행 가능한 R 코드가 포함되어야하며 코드를 자동으로 실행하는 것은 패키지 검사의 일부입니다. 예제에 대한 두 가지 특수 마크 업 명령이 있습니다.

dontrun : \ dontrun {} 안의 모든 것은 테스트 나 example ()에 의해 실행되지 않습니다. 이것은 예를 들어 대화 형 기능, 인터넷에 액세스하는 기능 등에 유용합니다. 실행할 수없는 예제를 제공하여 삶을 더 편하게 만들기 위해 오용하지 마십시오.


3

여기에 대한 표준 예는 다음에 대한 도움말 페이지에있을 수 있습니다 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)

이것이 실행되면 당연히 원하지 않는 효과가있을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.