【发布时间】:2013-02-04 05:48:19
【问题描述】:
我想遍历我的 R markdown 文件中的结果集列表。当我生成输出时,我想在结果集的名称中包含一些文本,例如标题。
我发现的一个 hacky 解决方案是像这样直接在文档中硬编码 html 输出
## All results
```{r loopResults, echo=FALSE, results='asis'}
results = list(result1 = data.frame(x=rnorm(3), y=rnorm(3)), result2=data.frame(x=rnorm(3), y=rnorm(3)))
for(res in names(results)) {
cat(paste("<h3>Results for: ", res, "</h3>>"))
plot(results[[res]]$x, results[[res]]$y)
}
这似乎不是正确的做事方式,特别是因为我想通过 pandoc 创建 PDF 文档,并且必须更改硬编码的表达式。 (我目前有 h3(text, type) 等便利功能)。
有更好的方法吗?
【问题讨论】:
-
由于您使用的是
pandoc,您可能会发现包pander很有用。特别是函数?pander::pandoc.header可能很有趣。 -
这是正确的方式。我相信这里真正的问题是你不应该使用
<h3>;您应该使用降价语法###代替 h3:en.wikipedia.org/wiki/Markdown#Headings -
我相信最干净的解决方案将取决于循环内的内容。如果循环中有很多代码,那么在
Rmd中实现所有内容将是最干净的。如果循环中有很多标记,那么使用brew模板作为中间体将导致更简洁的解决方案。