在我的数据集中,我想要使用 R Markdown 分析 60 个组并将其放入 HTML 报告中。因为我想对每个组应用相同的分析,所以我希望有一种方法可以动态生成代码块/分析。
简单来说,我想避免将该 block 复制 60 次。
我遇到了这个this在 knitr
中使用子项的问题。我尝试用 iris 数据集复制这一点。在下面的示例中,我只想生成三个 H4 标题,每个物种一个。
值得注意的是,我并没有接受这种方法,它只是似乎与我想做的事情有关。
这是我使用的文件:
parent.RMD
文件。这将是我的“主”报告。
Automate Chunks of Analysis in R Markdown
========================================================
```{r setup, echo=FALSE}
library(knitr)
```
```{r run-numeric-md, include=FALSE}
out = NULL
for (i in as.character(unique(iris$Species))) {
out = c(out, knit_child('child.Rmd'))
}
```
这是child.Rmd
。
#### Species = `r [i]`
最佳答案
尝试 knit_expand()
:
Automate Chunks of Analysis in R Markdown
========================================================
```{r setup, echo=FALSE}
library(knitr)
```
```{r run-numeric-md, include=FALSE}
out = NULL
for (i in as.character(unique(iris$Species))) {
out = c(out, knit_expand(text='#### Species = {{i}}'))
}
```
`r paste(knit(text = out), collapse = '\n')`
您还可以创建一个模板文件,例如 'child.rmd'
并将其放入 for 循环中,这样您就不必在引号中进行复杂的分析:
out = c(out, knit_expand('template.rmd'))
然后让您的'template.rmd'
为:
#### Species = {{i}}
关于r - 生成动态 R Markdown block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729415/