Можете ли вы вызвать / отобразить параметризованный отчет rmd в другом параметризованном отчете rmd - rmarkdown - PullRequest
0 голосов
/ 08 апреля 2019

Мне интересно, возможно ли на самом деле вызвать / отобразить параметризованный отчет из другого параметризованного отчета?

Я нашел [это] [1], но, похоже, решение не найдено.

Ниже приведен минимальный пример, где main-report.rmd пытается вызвать / отрендерить sub-report-1.rmd , Оба отчета имеют одинаковые параметры в заголовке YAML.

библиотека (здесь)

подотчет-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)
```

главный-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 уже существует в среде knit, поэтому не может быть переписан с помощью rend param. Исполнение остановлено.

1 Ответ

0 голосов
/ 09 апреля 2019

Решением является использование другого параметра в функции рендеринга: 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())
...