Gre*_*gor 21 r cran package-development
从Writing R Extensions手册中,我读到了这一点
从R 2.14.0开始,Sweave源的首选位置是源包的子目录vignettes,但为了与早期版本的R兼容,如果不存在vignet,则将在inst/doc中查找晕图源.
但是,当我创建vignettes包源的子目录时,当我运行devtools::check()或者R CMD check我收到警告时Package vignette(s) without corresponding PDF.如果我把小插图(.Rnw和.pdf)放入inst/doc检查完成而没有投诉.我尝试在我的库中查找已安装的打包,但没有看到任何名为的目录vignettes.我还应该使用已弃用的位置吗?
Rei*_*son 20
你把.Rnw资源放在了vignettes/你的位置,但你错过了关键的一步; 不要检查源树.预期的工作流程是构建源tarball,然后检查tarball.构建tarball将创建小插图PDF.
R CMD build ../foo/pkg
R CMD check ./pkg-0.4.tar.gz
Run Code Online (Sandbox Code Playgroud)
例如,将在当前目录中../foo/pkg创建.tar.gz包的源中构建源包tarball,并附加包名和版本.然后你运行R CMD check该源包.
如果您希望为您vignettes/构建的插图将其放入并构建源包.在未来的某个日期,R Core可能会删除现在建立小插图的能力,inst/doc并立即使用建议的位置,并避免直接检查源.
Ben*_*ker 13
我也很难解释这一点.
我相信你的意图是你应该把.Rnw文件vignettes/和PDF(适当的压缩)放在inst/doc/一起,如果你仔细阅读,这在技术上与文档一致.(也就是说,它说消息来源应该进去vignettes/.我没有看到它在那么多的话里说你应该把相应的PDF放进去inst/doc/,但它并没有说出来,而且这种解释似乎让人R CMD check高兴...)
解决方案是在@ GavinSimpson的答案中(即预计会构建tarball然后检查它,而不是检查源目录本身).(我的两分钱是,如果R-core正式弃用(并最终删除)直接来源检查而不是混淆我们所有的基础......可能是最好的.)