С RMarkdown я пытаюсь визуализировать параметризованный отчет для разных значений параметра. В файле Rmd используется кэширование.
Кэширование работает, как и предполагалось, если я вяжу в RStudio с помощью кнопки knit: сначала создается кеш, затем используется при каждом последующем вязании, даже если я изменяю значение параметра в YAMLheader.
Но при зацикливании значений моих параметров и использовании rmarkdown::render()
кэш перестраивается на каждой итерации.
Файл test.Rmd
---
title: "Untitled"
author: "Author"
params:
id: 0
date: "23/10/2019"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Test `r params$id`
```{r cars, cache=TRUE}
## open and work on large file (simulate)
test <- mtcars
Sys.sleep(10)
```
ИСценарий рендеринга: render.R
library(rmarkdown)
library(tidyverse)
1:5 %>%
walk(function(x) render("test.Rmd",
params = list(id = x),
output_file = paste0("file", x, ".html")))
Выполнение сценария занимает 5 * 10 секунд вместо примерно 10 секунд.
Что я сделал не так? Как пользоваться кешем?