使用knitr :: include_graphics在for循环中插入图像

Adr*_*ian 3 r knitr

```{r}
knitr::include_graphics(path = "~/Desktop/R/Files/apple.jpg/")
```
Run Code Online (Sandbox Code Playgroud)

上面的代码块工作正常。但是,当我创建一个for循环时,knitr::include_graphics似乎无法正常工作。

```{r}
fruits <- c("apple", "banana", "grape")
for(i in fruits){
  knitr::include_graphics(path = paste("~/Desktop/R/Files/", i, ".jpg", sep = ""))
}
```
Run Code Online (Sandbox Code Playgroud)

Tun*_*ung 11

include_graphics()已在顶部水平R表达式被用作一汇指出这里

我的解决方法是这样的:

```{r out.width = "90%", echo=FALSE, fig.align='center'}
files <- list.files(path = paste0('../', myImgPath), 
                    pattern = "^IMG(.*).jpg$",
                    full.names = TRUE)

knitr::include_graphics(files)

```
Run Code Online (Sandbox Code Playgroud)

  • 该解决方案也适用于 `files &lt;- dir("path/to/files/", pattern = "pattern.*jpg$", full.names = TRUE)` 而不是 `list.files` 。 (2认同)

PoG*_*bas 6

这是一个已知的问题knitr include_graphics在循环中无效#1260

一种解决方法是在for循环及其内部生成图像的路径cat。显示最终结果result = "asis"是必需的。

```{r, results = "asis"}
fruits <- c("apple", "banana", "grape")
for(i in fruits) {
    cat(paste0("![](", "~/Desktop/R/Files/", i, ".jpg)"), "\n")
}
```
Run Code Online (Sandbox Code Playgroud)

在这里,每次迭代都会生成图形的markdown路径(例如"![](~/Desktop/R/Files/apple.jpg)"