如何不使用roxygen2运行示例?


93

我现在正在编写依赖于Bing Maps Key 的地理编码功能。显然,我宁愿不发表我的作品,而这些例子如果没有一个,就会失败。

如何为用户提供一个示例以使其手动运行,而在运行期间不执行该示例R CMD check

Answers:


147

\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)
#'}

2
这是记录在?example写作R附加
GSEE

2
@Jeroen,我相信是roxygen2@example标签构成的,所以我认为这是一个roxygen2问题。我认为这\example{}是无效的-请参阅cran.r-project.org/doc/manuals/…–
GSee

2
从主题标题来看,问题是关于roxygen2语法而不是.Rd语法?
Jeroen

感谢你的回答。首先,它对我不起作用,因为我使用@example而不是@examples。这两个标签会在RStudio自动完成功能中显示。我现在很高兴。
Paul Rougieux

5
我认为所要求的正确答案是不要测试而不是不要运行。请参阅?example和stackoverflow.com/questions/12038160/…。另请参阅cran.r-project.org/web/packages/roxygen2/vignettes/rd.html
朱利安·卡尔斯

33

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

有关更多信息-> ?example

#' @example
\donttest{
    2^2
    }

运行时,此2 ^ 2不会运行 devtools::check()

判断前请自己检查。:)


13
看来这应该是可接受的答案,而不是不要运行。从?example中“ donttest包含通常应运行的代码,但在软件包检查期间不运行”。而“ dontrun包含不应运行的代码”。我还得到了cran维护者的评论,将其从dontrun转换为donttest。
朱利安·卡尔斯

3
完全同意@JulianKarls。从CRAN维护者那里得到了相同的反馈。
戴维(David)

9

对于那些使用@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

1
这对我不起作用(在Win 10、64位,R版本3.5.0上运行)
JBJ

2

阿里,我也使用roxygen2(版本4.1.0)。以下是我的函数(gctemplate)定义中roxygen2标记的结束,直到实际部分的开始。

#' @examples
#' ## List all G-causalities in a VAR system of 5 variables that will be searched in the pattern of 1 
#' ## causer (like-independent) variable and 2 like-dependents conditional on 5-(1+2)=2 of the remaining 
#' ## variable(s) in the system. Variables are assigned to numbers 1 to nvars. 
#' ## "1 2 5 3 4" in the resulting line of gctemplate is to indicate the 
#' ## (conditonal, partial, etc.) G-causality from variable 1 to variables 2 and 5 
#' ## conditonal on variables 3 and 4.
#' # gctemplate(5,1,2)
#' ## The number of all G-causalities to be searched in the above pattern.
#' #dim(gctemplate(5,1,2))[[1]]
#' @importFrom combinat combn
#' @export
gctemplate <- function(nvars, ncausers, ndependents){
...

我知道GSee的dontrun方法。
在我的技术中,数值示例和解释数值示例的文字都是注释。我使用缩进来区分这两者;请注意,在“#'”之后分别有1个尖锐和2个尖锐。我总是在我的软件包中使用上述“#'## /#'#”技术。每当用户想要测试该功能时,就只能进行复制粘贴操作。根据我的看法,该技术与软件编码哲学的经典注释轰炸更相似。


14
如果使用dontrun{},则用户可以调用example(myFunction, run.dontrun=TRUE),而如果仅对示例进行注释,则除了复制/粘贴外,您将无法运行示例。
GSee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.