通过字幕和图表在 knitr 中循环

looping in knitr through captions and graphs

假设我必须遵循数据集:

data.frame(group=paste0("group",c(rep(1,4),rep(2,4),rep(3,4))),caption=c(paste0("caption",1:12)),png_file=c(paste0("graph",1:12,".png")))

看起来像这样:

group   caption    png_file
1  group1  caption1  graph1.png
2  group1  caption2  graph2.png
3  group1  caption3  graph3.png
4  group1  caption4  graph4.png
5  group2  caption5  graph5.png
6  group2  caption6  graph6.png
7  group2  caption7  graph7.png
8  group2  caption8  graph8.png
9  group3  caption9  graph9.png
10 group3 caption10 graph10.png
11 group3 caption11 graph11.png
12 group3 caption12 graph12.png

据此假设,我想要有与组相对应的部分,每个图都有一个空的小节,带有 knitr::include_graphics() 和正确的标题。

对于第一个,我会在我的 markdown 中写下类似的内容:

# group1

##

```{r, echo=FALSE, fig.cap="caption1"}
knitr::include_graphics("graph1.png")
```

##

```{r, echo=FALSE, fig.cap="caption2"}
knitr::include_graphics("graph2.png")
```

等等。

我怎样才能使这个过程自动化??我努力写一个带有 r 个块的循环 insisde...

有人可以帮我吗?

这样可以吗?

```{r, results='asis'}
cat(sprintf('![%s](%s)', df$caption, df$png_file), sep = '\n')
```