您能否在另一个参数化rmd报告-rmarkdown

时间:2019-04-08 20:25:16

标签: r r-markdown knitr

我想知道是否真的可以从另一个参数化报告中调用/呈现一个参数化报告?

我找到了[this] [1],但似乎没有提出解决方案。

下面是一个最小示例,其中 main-report.rmd 尝试调用/呈现 sub-report-1.rmd 。这两个报告在YAML标头中具有相同的参数。

图书馆(在这里)

sub-report-1.rmd

---
title: "Secondary report to run"
output: html_document

params:
  country: "Canada"
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

paste0("Hello ", params$country)
```

main-report.rmd

---
title: "Main report"
output: html_document

params:
  country: "France"
---

```{r run1, include=FALSE}
  rmarkdown::render(here::here("rmd", "sub-report-1.rmd"),
                    output_format = "html_document",
                    output_file="report1.html", 
                    params = list(country=params$country))


```

我收到以下错误:

  

错误:编织环境中已经存在params对象,因此无法   被rend param覆盖。执行停止。

1 个答案:

答案 0 :(得分:0)

解决方案是在渲染函数中使用另一个参数:envir = new.env()。问题在于对象params已被使用。

rmarkdown::render(here::here("rmd", "sub-report-1.rmd"),
                output_format = "html_document",
                output_file="report1.html", 
                params = list(country=params$country),
                envir = new.env())