R - 如何在 R 中读取多个 png 文件并编织成 pdf?

Posted

技术标签:

【中文标题】R - 如何在 R 中读取多个 png 文件并编织成 pdf?【英文标题】:R - How to read multiple png files in R and knit into a pdf? 【发布时间】:2021-10-18 21:27:55 【问题描述】:

我有大约 100 个 .png 文件(之前在 R 中通过另一个脚本生成的图),我想读入 R。读完后,我想将它们编成一个 pdf 文档,每页有 1 或 2 个图。我不断收到错误。

png::readPNG(path, native = TRUE, info = TRUE) 中的错误:文件不是 PNG 格式

【问题讨论】:

您是否考虑过使用include_graphics(path) 并使用list.files() 填充path?这样您就可以将现有的 PNG 文件包含到文档中,然后再合并为 PDF。 【参考方案1】:

如果你已经在 R 中生成 PNG 文件,为什么不直接在 Rmarkdown 文档中生成呢?设置cache = TRUE可以加快文档第一次执行后的计算速度。

如果你想手动包含它们,你应该在一个块中使用knitr::include_graphics()。您可以使用此方法将单独的图添加到页面,from the documentation 您可以将路径的字符向量传递给它。正如 cmets 中的 @CL 所建议的那样,您可以使用 list.files() 来查找所有 PNG 并创建要传递给函数的字符向量。

例如,您将有一个看起来像这样的代码块:

paths <- list.files(path = "path/to/images", pattern = "*.png")
knitr::include_graphics(paths)

如果您想更好地控制图像的放置,则需要将其分成多个块。请注意,尽管list.files() 函数的pattern 参数采用正则表达式,因此您可以在一个块中包含与模式匹配的文件(例如a_images1.pnga_images2.png 等),然后包含不同的模式在另一个块中。

【讨论】:

以上是关于R - 如何在 R 中读取多个 png 文件并编织成 pdf?的主要内容,如果未能解决你的问题,请参考以下文章

我无法在 Rstudio 中编织/编译 .R 文件

如何从压缩文件中读取多个文件?

在R Markdown编织输出中显示javascript结果

Rstudio Rmarkdown编织到多个pdf?

R foreach:并行读取和操作多个文件

如何读取R中的多个文本文件