【发布时间】:2018-01-09 20:56:22
【问题描述】:
我正在自动化演示,并希望为目录中的每个图像创建一张幻灯片(图像文件名都是具有三个字符名称的 .png 文件)。
这可以根据需要测试带有标题和图像的幻灯片是否会呈现:
```{r, results="asis", out.width="900px"}
plot_files <- list.files(paste0(mydir, "/plots"))
i <- 1
cat("\n\n##", substr(plot_files[i], 1, 3), "\n\n", sep="")
knitr::include_graphics(paste0(dir, "/plots/", plot_files[i]))
```
但是当我将上面的内容包装成 for 循环时...
```{r, results="asis", out.width="900px"}
plot_files <- list.files(paste0(mydir, "/plots"))
for (i in 1:length(plot_files)) {
cat("\n\n##", substr(plot_files[i], 1, 3), "\n\n", sep="")
knitr::include_graphics(paste0(dir, "/plots/", plot_files[i]))
}
```
...每张幻灯片都正确生成了标题,但图像不再呈现。任何想法为什么将代码包装在循环中会导致图像渲染失败?
【问题讨论】:
-
在通过 knitr 文档进行更多搜索后,我发现这是一个已知问题:github.com/yihui/knitr/issues/1260; knitr 只能计算顶级表达式。
标签: r knitr r-markdown pandoc ioslides