在我的数据集中,我有60个组要分析,并使用R Markdown将其放入HTML报告中.因为我想对每个组应用相同的分析,我希望有一种方法可以动态生成代码块/分析.
简单地说,我想避免复制块60次.
我碰到这个这个问题,它使用儿童knitr.我试图用虹膜数据集复制它.在下面的例子中,我想做的就是生成三个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'))
}
Run Code Online (Sandbox Code Playgroud)
```
这是child.Rmd.
#### Species = `r [i]`
Run Code Online (Sandbox Code Playgroud) 有一些奇怪的行为dygraph.
使用for循环时,dygraph我没有结果.
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
for(i in 1:2){
dygraph(lungDeaths[, i])
}
Run Code Online (Sandbox Code Playgroud)
另一方面,当我使用lapply我确实得到预期的结果
lapply(1:2, function(i) dygraph(lungDeaths[, i]))
Run Code Online (Sandbox Code Playgroud)
我实际上想在我自己的数据集中使用for循环R Markdown并迭代不同的列,但即使我使用lapply"解决方法",它也不会绘制dygraphs
R Markdown代码
---
title: "Untitled"
author: "dimitris_ps"
date: "28 May 2015"
output: html_document
---
```{r}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
lapply(1:2, function(i) dygraph(lungDeaths[, i]))
```
Run Code Online (Sandbox Code Playgroud)
而当我逐列运行它时,它的工作原理
---
title: "Untitled"
author: "dimitris_ps"
date: "28 May 2015"
output: html_document
---
```{r echo=FALSE}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths) …Run Code Online (Sandbox Code Playgroud) 我想循环一个列表,并用HTML打印一些部分,一些打印为代码.所以更精确一点:我想生成相同的输出
<h2> 1 is a great number </h2>
<!--begin.rcode echo=FALSE print(rnorm(5,mean=1)) end.rcode-->
<h2> 2 is a great number </h2>
<!--begin.rcode echo=FALSE print(rnorm(5,mean=2)) end.rcode-->
...
<h2> x is a great number </h2>
Run Code Online (Sandbox Code Playgroud)
我设法打印到HTML,但结果也直接打印在HTML中,使用以下Chunk:
<!--begin.rcode, echo=FALSE, results = 'asis'
for (i in list(1,2)){
cat("<h2>", i, "is a great number</h2>")
print(rnorm(5,mean=i))
}
end.rcode-->
Run Code Online (Sandbox Code Playgroud)
对所有建议都很满意.
PS:我想要格式化的原因是knirtBootstrap然后产生一个非常好的输出.