【问题标题】:Show PNG images consecutively with loop in R Markdown chunk (HTML)在 R Markdown 块(HTML)中使用循环连续显示 PNG 图像
【发布时间】:2020-03-16 19:23:16
【问题描述】:

可以使用 R Markdown 块循环在 HTML 输出中连续(一个在另一个之上)显示多个图形文件(例如 PNG)吗?此循环将识别向量中的文件,例如通过list.files()

我已经尝试过使用 writeLines("\n")cat('\r\n\r\n')knit_expand() [每 this SO 无济于事]。

This R Markdown code(格式如下,但链接为.Rmd)是一个可重现的示例,尝试使用writeLines("\n")cat('\r\n\r\n')。请注意,这会将 5 个 R 标志 PNG(仅 12kb)文件副本复制到您的工作目录中。

---
title: "Stack Overflow Consecutive PNG"
author: "Rick Pack"
date: "11/20/2019"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Copy a PNG file as multiple files

```{r png_copy, echo=FALSE}
for (q in 1:5) {
 file.copy(list.files(system.file("img", package = "png"), 
                      full.names = TRUE),
           getwd())
 file.rename("Rlogo.png", paste0("Rlogo_",q,".png"))
}
```

# Only one R logo shown instead of the five available
```{r png_show, echo=FALSE}
library(png)
# Providing the folder so you can delete the png files
# created above
print(getwd())
 all_img <- list.files(full.names = TRUE)[grepl(
     "Rlogo", list.files())]
 for (j in 1:length(all_img)) {  
 grid::grid.raster(readPNG(all_img[j]))
writeLines("\n")
cat('\r\n\r\n')  
cat("\n\n\\pagebreak\n")
 }
```

【问题讨论】:

    标签: r r-markdown


    【解决方案1】:

    您可以在 for 循环中使用 R Markdown 语法,而不是 png 包。鉴于您将图像与 Rmd 放在同一目录中,以下应该可以工作:

    ```{r, results = "asis"}
    filelist <- c("Rlogo_1", "Rlogo_2", "Rlogo_3")
    
    for(i in filelist) {
        cat(paste0("![](", i, ".png)"), "\n")
        cat("\n\n\\pagebreak\n")
    }
    ```
    

    输出: 有关更多信息,请参阅此相关问题:Insert images using knitr::include_graphics in a for loop

    【讨论】:

    • 该解决方案打印了 []./Rlogo_1.PNG 之类的字符串,但您提供的链接给出了解决方案:只需将 knitr::include_graphics() 的参数设置为包含图像完整路径的向量文件。在我的示例中: knitr::include_graphics(all_img) 将出现在一个块中。谢谢!
    • 它会在内联输出中打印字符串,但是当你编织文档时它应该嵌入图像。
    • 这就是我的意思:HTML 只显示字符串。
    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2018-05-21
    • 2016-01-21
    • 2021-12-24
    • 2022-06-28
    • 2013-06-03
    相关资源
    最近更新 更多