【问题标题】:RmarkDown iterative loopRmarkDown 迭代循环
【发布时间】:2016-09-06 09:15:50
【问题描述】:

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

在 Rmarkdown 文件中我有这个输入:

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

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

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

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

如何通过迭代循环为pole

谢谢

【问题讨论】:

    标签: r loops knitr r-markdown


    【解决方案1】:

    您可以使用参数化报告来做到这一点:

    在 YAML 序言中添加以下内容:

    --- 参数: pole: 21 # 默认值 ---

    在您的代码中将pole &lt;- "21" 更改为pole &lt;- 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

    【讨论】:

      【解决方案2】:

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

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

      B 可供Report.Rmd 脚本使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 2013-01-27
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        相关资源
        最近更新 更多