我正在制定一套方案,并考虑在其中加入一个小插曲。我使用RStudio进行包开发,并按照哈德利·韦卡姆的指示使用Rmarkdown和knitr,或者编写vignette。
当从Rstudio按下knit时,我能够编译vignette,但是命令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.我该做什么或者改变什么?我知道这只是支票。
会议信息:
> 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 发布于 2016-11-22 14:24:37
下面的错误消息具有误导性,并已在的后期版本中得到修正。
错误:处理vignette 'mypackage-vignette.Rmd‘与诊断失败:似乎您应该调用
rmarkdown::render()而不是knitr::knit2html(),因为mistral v2似乎是一个R标记v2文档。
出了问题的不是knitr::rmarkdown引擎。这句话是对的。问题是您还必须在包的rmarkdown文件中向Suggests添加knitr(除了knitr之外),否则在R CMD check期间,rmarkdown包将不可用,因此将返回到knit2html()来构建vignette,但是knit2html()会看到一个由rmarkdown::render()编译的Rmd文档,因此它抛出了一个错误。
微缩引擎knitr::rmarkdown依赖于rmarkdown,因此rmarkdown需要出现在DESCRIPTION中的Suggests中。类似地,如果vignette引擎需要其他包,则必须将这些包指定为正在检查的包的(硬或软)依赖项。
这个问题的最初答案提到了rmarkdown::render引擎。这不是一个有效的引擎,不应该使用。
https://stackoverflow.com/questions/40726762
复制相似问题