我有一个README.Rmd
的包裹,我传递给rmarkdown::render()
生成README.md
和目录README_files
,其中包含README.md
中的图片。这看起来像下面的树。
README_files
是not a standard package directory,因此,如果它不在.Rbuildignore
中,则使用R CMD check
检查包会显示一条注释:
* checking top-level files ...
NOTE Non-standard file/directory found at top level: README_files
但是,当且仅当检查包.Rbuildignore
时,包括--as-cran
中的目录会导致警告。 IIUC Pandoc尝试从README.md
生成HTML,但图像不可用,位于忽略的README_files
目录中。
Conversion of ‘README.md’ failed:
pandoc: Could not fetch README_files/unnamed-chunk-14-1.png
README_files/unnamed-chunk-14-1.png: openBinaryFile: does not exist (No such file or directory)
有没有办法在这里进行干净的检查--as-cran
?
├── README_files
│ └── figure-markdown_github
│ ├── unnamed-chunk-14-1.png
│ ├── unnamed-chunk-15-1.png
│ ├── unnamed-chunk-16-1.png
│ ├── unnamed-chunk-26-1.png
│ └── unnamed-chunk-27-1.png
├── README.md
├── README.Rmd
答案 0 :(得分:13)
当前首选解决方案(至少由ggplot2
使用)是将图像存储在man/figures/
中。因此,在README.Rmd
文件中,包含类似以下设置块的内容。
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-"
)
```
将图像隐藏在一个不会产生曲目检查错误的地方,但它们仍然是包的一部分。因此,您不必将它们存储在其他位置或使用png::readPNG
的调用。
答案 1 :(得分:3)
有几个选择。更新:我认为Rob Hyndman的解决方案现在比我在此列出的内容更好。
.Rbuildignore
中提及它们。inst/image
中,然后使用png::readPNG(system.file("image/yourpic.png", package = "yourpkg"))
进行阅读。然后使用绘图在README中显示它。答案 2 :(得分:2)
我跟着http://r-pkgs.had.co.nz/release.html。将它们放在顶层并添加到.Rbuildignore时会出现同样的错误。
正如Richie建议的那样,在将图像添加到inst / image之后,并将其称为![](inst/image/README-unnamed-chunk-1-1.png)