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

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

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



답변

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

예를 참조하십시오 ?example:

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

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

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


답변

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

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

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

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

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


답변

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

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

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


답변

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

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

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


답변

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

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


답변