我试图弄清楚如何创建一个循环,将一些文本插入到 * rmarkdown * 文件中,然后生成与该标题对应的图形或表格。
for(i in 1:max(month)){
### `r month.name[i]` Air quaility
```{r, echo=FALSE}
plot(airquality[airquality$Month == 5,])
}
当然这只是把for循环打印成文本,如果我用r ''把for循环括起来,我只会得到一个错误。
我想让代码生成一个rmd文件,如下所示:
#### 五月空气质量
情节
#### 六月空气质量
情节
等等等等。
任何想法?我不能使用乳胶,因为我在我的工作,他们不让我们下载exe文件,我不知道如何使用乳胶反正。我想产生一个word文档。
4条答案
按热度按时间gzszwxb41#
您可以使用
cat()
将减价嵌入到循环中。注意:你需要设置
results="asis"
,使文本呈现为markdown。您需要在\n
新行字符前面留两个空格,以便让knitr在出现打印输出时正确呈现减价。8yparm6h2#
正如前面提到的here,您还可以使用pander包:
qmelpv7a3#
在某些情况下,我发现编写一个写块代码的循环比编写一个运行循环的块更有帮助。这是一个奇怪的解决方案,但在过去,当我只需要一组基本的块时,它对我来说效果很好。对于
airquality
的情况,它看起来像这样:这将把所有5个块的代码打印到控制台,然后我可以复制并粘贴到.Rmd文档中。还可以在块写入循环中包括任何块选项,如标题或
fig
参数。根据您尝试引入的其他内容,使用示例中的match()
等函数通常很有帮助。**优点:**保留使用交叉引用和设置单独标题或选项的能力。
**缺点:**对所有块进行更改通常需要重新复制块写入循环的整个输出,这可能会令人厌烦并且有点笨拙。
093gszye4#
使用〈〉在循环中重用块怎么样,如下所述:https://bookdown.org/yihui/rmarkdown-cookbook/reuse-chunks.html
标记块,设置eval=F
for(i in 1:max(month)){
<<my_chunk>>
}