RmarkDown 迭代循环

RmarkDown iterative loop

我有一个为业务部门生成报告的 RMarkdown 文件 "Ux"。我想创建一个迭代循环,为业务的所有业务部门 "U1, U2, U3,..." 生成特定报告。

在 Rmarkdown 文件中我有这样的输入:

```{r , warning=FALSE, echo=FALSE, message=FALSE, autodep=TRUE,cache.vars='pole' } 
pole <- "21" 
``` 

其中 pole 是业务单位标识变量。

然后我有一个 R 脚本调用,用极点变量做一些事情。

```{r LOAD, warning=FALSE, echo=FALSE, message=FALSE, autodep=TRUE, cache=FALSE }
require(knitr)
source('POLE2.r', local=environment())
```

我如何使用迭代循环生成极点 <- [1,2,3,4,5...] 的每个报告(每个单元一个 html 文件)?

谢谢

这就是我循环遍历列表操作值并为每个条目生成报告的方式。因为我公司有旧版本的 R 和 Rmarkdown,所以我无法 运行 参数化报告。

for(i in seq_along(business))
{
  B <- business[i]
  knit2html("Report.Rmd"
            ,paste0(filepath,"/business ",B ,".html")
  )
}

B 可供 Report.Rmd 脚本使用。

您可以使用参数化报告执行此操作:

将以下内容添加到 YAML 序言中:

---
params:
  pole: 21 # default value
---

在您的代码中将 pole <- "21" 更改为 pole <- params$pole

然后 运行 循环如下:

poles <- 1:5 # define your set
for (pole in poles)
  rmarkdown::render(input = "yourFile.Rmd", 
      output_file = paste0("yourOutput_", pole, ".html"),
      params = list(pole = pole)
  )

有关详细信息,请参阅 http://rmarkdown.rstudio.com/developer_parameterized_reports.html