问题
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.
- Store the image online somewhere, and include the URL in the README.
- As @Axeman noted, you can follow the ggplot2 approach of storing the images at the top level, and mentioning them in
.Rbuildignore
. - You can store them in
inst/image
, and usepng::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