如何使用roxygen2运行示例?

Ari*_*man 81 r roxygen2

我现在正在编写一个地理编码功能,它依赖于Bing Maps Key.显然我宁愿不发布我的,并且没有一个例子就失败了.

如何包含一个示例供用户手动运行,但没有在执行期间执行R CMD check

GSe*_*See 131

使用 \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)
#'}
Run Code Online (Sandbox Code Playgroud)

  • 这适用于`@ examples`但不适用于`@ example`. (9认同)
  • 我认为正确答案的正确答案是不要做,也不要做坏事.请参阅?示例和/sf/ask/842671231/#comment89039795_44997778.另见https://cran.r-project.org/web/packages/roxygen2/vignettes/rd.html. (3认同)
  • 这在`?example`和[Writing R Extensions](http://cran.r-project.org/doc/manuals/R-exts.html#Documenting-functions)中有记录 (2认同)
  • @Jeroen,我相信'roxygen2`构成了`@ example`标签,所以我认为这是一个'roxygen2`问题.我不认为`\ example {}`是有效的 - 请参阅http://cran.r-project.org/doc/manuals/R-exts.html#index-g_t_005cexamples-78 (2认同)
  • 从主题标题来看,问题是关于roxygen2语法而不是关于.Rd语法? (2认同)

sam*_*art 20

您可以使用\donttest{}您的示例.该片段将在您的文档中提供,但不会通过R CMD Check进行测试.

欲了解更多信息 - > ?example

#' @example
\donttest{
    2^2
    }
Run Code Online (Sandbox Code Playgroud)

当你跑步时,这个2 ^ 2将无法运行 devtools::check()

在判断之前先自己检查一下.:)

  • 似乎这应该是接受的答案而不是dontrun.来自?example'donttest包含通常应该运行的代码,但不包括在包检查期间.而'dontrun包含了不应该运行的代码.' 我还得到了一些评论,由维护人员从dontrun切换到donttest. (9认同)
  • 完全赞同@JulianKarls.得到了CRAN维护者的相同反馈. (2认同)

Pet*_*ter 5

对于那些正在使用@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
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用(在 Win 10、64 位、R 版本 3.5.0 上运行) (2认同)