2009-09-21 88 views
80

有时在R帮助页面上,短语“不运行”出现在注释中。查看帮助页面中的“with()”:R帮助页面中的“不运行”是什么意思?

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

示例代码中的“not run”是什么意思?

+22

只是一个相关的提示。您可以通过发出“example(glm)”运行示例代码。 – 2009-09-21 16:10:39

+2

这是一个很好的提示。我敢打赌绝大多数R用户并不知道它。 – 2009-09-21 17:54:56

+0

但注意示例(fn)仍然不会包装在'dontRun'中的示例代码 – tim 2015-08-27 11:03:32

回答

58

“未运行”包含不应在example函数中执行的代码(例如,耗时的代码部分,用户交互...)。

参见例如?example

由于在手动写作R附加详细的 笔者的帮助页面可以标记的例子部分有两个例外 规则

  • “dontrun”封闭的代码,不应该被运行。

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

+3

...我怎么不知道这个函数? – 2009-09-21 14:41:16

+3

这不仅仅是耗时的代码,通常放在\ dontrun {}中。需要用户输入的代码需要在dontrun内部,否则将不会通过'R CMD检查' – Dason 2012-10-11 23:03:44

+1

或者:取决于用户机器上可能未安装的程序包的代码。有很多很多原因可以使用\ dontrun {} – Jason 2016-09-12 06:45:55

22

"Writing R Extensions"手册,在大约\实例{...}说,

您可以使用\ dontrun {}文本应该只被显示,但无法运行,而第\ dontshow {}对于不应被显示给用户,但将通过实例()来运行测试额外的命令

当你构建一个包,然后在\ dontrun所有代码{}闭包是在帮助为可见

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

编辑:This answer较早。

4

Ç&弗里德里希Leisch从MUST-TO-READ Creating R Packages: A Tutorial的第5.4章(R文档文件)P:

实施例部分应包含 可执行R代码里面,并自动 运行的代码是部分检查 一个包。存在用于实施例的两个特殊 标记命令:

dontrun:\ dontrun内一切{} 不被测试或 例如()执行。这对于例如 交互功能, 访问互联网等是有用的。不要 通过给出不能被 执行的例子来错误地使你的生活变得容易 。

10

This add \donttest{} and taken(verbatim)from @ hadley's R Packages

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

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

请注意,donttest现在已经过测试 – 2015-01-28 00:40:01

+0

对于包提交,您是否必须在.Rd中提供任何其他注释来证明遗漏代码块?我有一个包失败检查,因为有一个\ donttest {}例子,我想知道它是否是一个简单的改变为\ dontrun {}。该功能用于从ftp下载数据,而CRAN注释是:“在.Rd文件中没有对此进行注释。请注意,example()将运行这些部分”。 – 2015-01-30 14:48:09

+0

是的,它应该是那么简单。 – 2015-01-30 15:19:41