NOTE or WARNING from package check when README.md includes images

丶灬走出姿态 提交于 2020-01-14 03:49:18

问题


I have a package with a README.Rmd that I pass to rmarkdown::render() producing README.md and a directory README_files, which contains images in README.md. This looks like the tree below.

README_files is not a standard package directory, so if it isn't in .Rbuildignore, checking the package with R CMD check shows a note:

* checking top-level files ... NOTE Non-standard file/directory found at top level: README_files

But including the directory in .Rbuildignore leads to a warning, if and only if checking the package --as-cran. IIUC Pandoc tries to generate HTML from README.md, but the images are unavailable, in the ignored README_files directory.

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)

Is there any way to get a clean check --as-cran here?

├── 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


回答1:


The current preferred solution (at least as used by ggplot2) is to store the images in man/figures/. So in the README.Rmd file, include something like the following setup chunk.

```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-"
)
```

That keeps the images tucked away in a place that won't generate cran check errors, but they are still part of the package. So you don't have to store them elsewhere or use calls to png::readPNG.




回答2:


There are a few options. Update: I think Rob Hyndman's solution is now better than the things I list here.

  1. Store the image online somewhere, and include the URL in the README.
  2. As @Axeman noted, you can follow the ggplot2 approach of storing the images at the top level, and mentioning them in .Rbuildignore.
  3. You can store them in inst/image, and use png::readPNG(system.file("image/yourpic.png", package = "yourpkg")) to read it. Then show it in the README using a plot.



回答3:


I followed http://r-pkgs.had.co.nz/release.html. same error when putting them in top level and add to .Rbuildignore.

As Richie suggested, after adding images to inst/image, and refer to as ![](inst/image/README-unnamed-chunk-1-1.png)



来源:https://stackoverflow.com/questions/48600293/r-cmd-check-note-non-standard-files-directories-found-at-top-level-png-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!