Я бы рекомендовал немного другой подход.Создайте файл RMarkdown со значением param
для вида, установленного в yaml файла.Используйте это значение для вашей фильтрации.Затем в другом сценарии используйте функцию apply
, чтобы связать файл RMarkdown для каждого вида.
RMarkdown, сохраненный как iris_params.Rmd
---
title: "Parameterized iris summary"
date: "November 14, 2018"
output: html_document
params:
species: setosa
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r iris}
species <- params$species
summary(iris[iris$Species == species, ])
```
Сценарий рендеринга:
species <- c("setosa", "versicolor", "virginica")
sapply(species, function(x) {
rmarkdown::render(input = "iris_params.Rmd",
output_file = sprintf("iris_params_%s.html", x),
params = list(species = x))
})
Это создает 3 файла HTML, по одному для каждого вида, заданного в качестве параметра.Обратите внимание, что по умолчанию файлы будут создаваться с тем же именем, что и входной файл, только расширение соответствующим образом изменяется, поэтому вам необходимо создать имена выходных файлов для каждого значения параметра.Я делаю это с sprintf
и добавляю значение вида в базовое имя файла.
Вывод, iris_params_virginica.html
: