我正在开发一个包并考虑在其中包含一个小插图。我使用 RStudio 进行包开发,并按照 Hadley Wickam 的说明使用 Rmarkdown
和 knitr
或编写小插图。
从 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
需要出现在 rmarkdown
的 Suggests
中。类似地,如果小插图引擎需要其他包,则必须将这些包指定为被检查包的(硬或软)依赖项。
这个问题的原始答案提到了小插图引擎 DESCRIPTION
。这不是有效的小插图引擎,不应使用。
关于r - devtools::check 由于小插图构建而失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40726762/