我正在开发一个包并考虑在其中包含一个小插图。我使用 RStudio 进行包开发,并按照 Hadley Wickam 的说明使用 Rmarkdownknitr 或编写小插图。

从 Rstudio 按 knit 时,我能够编译小插图,但命令 devtools::check() 返回错误:

==> devtools::check(cleanup = FALSE)

Updating mypackage documentation
Loading mypackage
Setting env vars ---------------------------------------------------------------
CFLAGS  : -Wall -pedantic
CXXFLAGS :-Wall -pedantic
Building mypackage ---------------------------------------------------------------
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file
--no-environ  \   --no-save --no-restore --quiet CMD build  \   '/Volumes/Stockage/Dropbox/R/Packages/mypackage' --no-resave-data  \
--no-manual

* checking for file ‘/Volumes/Stockage/Dropbox/R/Packages/mypackage/DESCRIPTION’ ... OK
* preparing ‘mypackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* installing the package to build vignettes
* creating vignettes ...
ERROR Error: processing vignette 'mypackage-vignette.Rmd' failed with diagnostics: It seems you should call rmarkdown::render() instead of knitr::knit2html() because mistral-vignette.Rmd appears to be an R Markdown v2 document.
Execution halted
Error: Command failed (1)
In addition: Warning message:
`cleanup` is deprecated
Execution halted

Exited with status 1.

我应该做什么或改变?我知道这只是支票。

session 信息:
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] ggplot2_2.1.0     foreach_1.4.3     knitr_1.14        rmarkdown_1.2
[5] mistral_2.2.1

最佳答案

下面的错误消息具有误导性,并已在 knitr 的更高版本中修复:

出问题的不是小插图引擎 knitr::rmarkdown 。这个小插曲是正确的。问题是您还必须在包的 rmarkdown 文件中将 knitr (除了 Suggests )添加到 DESCRIPTION 中,否则在 R CMD check 期间, rmarkdown 包将不可用,因此 knitr 将返回代码小插图,但 knit2html() 看到一个应该由 knit2html() 编译的 Rmd 文档,所以它抛出了一个错误。
小插图引擎 rmarkdown::render() 取决于 rmarkdown ,因此 knitr::rmarkdown 需要出现在 rmarkdownSuggests 中。类似地,如果小插图引擎需要其他包,则必须将这些包指定为被检查包的(硬或软)依赖项。
这个问题的原始答案提到了小插图引擎 DESCRIPTION 。这不是有效的小插图引擎,不应使用。

关于r - devtools::check 由于小插图构建而失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40726762/

10-12 17:42