我试图弄清楚如何创建一个循环,将一些文本插入到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文档。
答案 0 :(得分:31)
您可以使用cat()
在屏幕内嵌入markdown。
注意:您需要将results="asis"
设置为要呈现为markdown的文本。
请注意:在\n
换行符前面需要两个空格才能让编织者在出现情节时正确渲染降价。
# Monthly Air Quality Graphs
```{r pressure,fig.width=6,echo=FALSE,message=FALSE,results="asis"}
attach(airquality)
for(i in unique(Month)) {
cat(" \n###", month.name[i], "Air Quaility \n")
#print(plot(airquality[airquality$Month == i,]))
plot(airquality[airquality$Month == i,])
cat(" \n")
}
```
答案 1 :(得分:1)
# Monthly Air Quality Graphs
```{r pressure2, fig.width=6, echo=FALSE, message=FALSE, results="asis"}
library(pander)
for (i in unique(airquality$Month)) {
# Inserts Month titles
pander::pandoc.header(month.name[i], level = 3)
# Section contents
plot(airquality[airquality$Month == i,])
# adding also empty lines, to be sure that this is valid Markdown
pander::pandoc.p('')
pander::pandoc.p('')
}
```