通过字幕和图表在 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')
```
假设我必须遵循数据集:
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')
```