R帮助页面中"不运行"是什么意思?

Dan*_*ein 104 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**)
Run Code Online (Sandbox Code Playgroud)

示例代码中"未运行"的含义是什么?

rcs*_*rcs 67

"not run"包含不应在example函数中执行的代码(例如耗时的代码部分,用户交互......).

见例如?example:

如" 编写R扩展 "手册中所述,帮助页面的作者可以为两个例外规则标记部分示例

  • 'dontrun'包含不应运行的代码.

  • 'dontshow'包含在帮助页面上不可见的代码,但是将由包检查工具和'example()'函数运行.这是以前'testonly',这种形式仍然被接受.

  • 这不仅仅是耗时的代码,通常放在\ dontrun {}中.需要用户输入的代码也需要在dontrun内部,否则它将不会通过`R CMD check` (5认同)
  • ......我怎么不知道这个功能? (3认同)
  • 或者:依赖于可能未安装在用户机器上的包的代码。使用 \dontrun{} 的原因有很多很多 (2认同)

Mar*_*rek 23

"编写R扩展"手册中,在关于\ examples {...}的部分中说

您可以使用\ dontrun {}来显示应该只显示但不能运行的文本,并使用\ dontshow {}获取不应该向用户显示的额外测试命令,但是将通过example()运行

当你构建一个包时,\ dontrun {}闭包中的所有代码都可以在help中看到

## Not run:
...
## End(**Not run**)
Run Code Online (Sandbox Code Playgroud)

编辑:这个答案是早些时候.


Tyl*_*ker 14

这增加\donttest{}了(并逐字)来自@ hadley的R包.

但是出于说明的目的,包含导致错误的代码通常很有用.\dontrun{}允许您在示例中包含从未使用过的代码.还有另外两个特殊命令.\dontshow{}运行,但未显示在帮助页面中:这对于非正式测试非常有用.\donttest{}在示例中运行,但不在R CMD检查中自动运行.如果您有需要很长时间才能运行的示例,这将非常有用.选项总结如下.

Command      example    help       R CMD check
\dontrun{}                 x
\dontshow{}       x                          x
\donttest{}       x        x
Run Code Online (Sandbox Code Playgroud)

  • 请注意,现在已经测试了donttest (2认同)
  • 是的,这里引述了Hadley的书中的一句话:“出于说明的目的,包含导致错误的代码通常很有用。\ dontrun {}允许您在未运行的示例中包含代码。(以前可以将\ donttest {}用于类似目的,但由于实际上已经过测试,因此不再建议使用。”” (2认同)

小智 6

这里的规范示例可能位于以下内容的帮助页面中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)
Run Code Online (Sandbox Code Playgroud)

如果这样运行,当然会产生不良影响。


Pao*_*olo 5

必须阅读的第 5.4 章(R 文档文件)中的 C & p创建 R 包: Friedrich Leisch的教程

示例部分应包含可执行的 R 代码,自动运行代码是检查包的一部分。这些示例有两个特殊的标记命令:

dontrun:\dontrun{} 中的所有内容都不会被测试或 example() 执行。这很有用,例如,对于交互功能、访问 Internet 的功能等。不要通过提供无法执行的示例滥用它来使您的生活更轻松。