Можно ли использовать кусок кеша knitr в интерактивном документе rmarkdown?

Я заметил, что когда у меня есть Rmd с runtime: shiny в YAML, кажется, что фрагменты кода не читаются из кеша. Мне интересно, не поддерживает ли блестящий движок для rmarkdown кеширование фрагментов или я что-то делаю не так?

Пример файла Rmd:

---
title: "Cache test"
output: html_document
---

```{r cache=TRUE}
Sys.sleep(10)
```

Если вы запустите это 5 раз, только первый раз займет 10 секунд, а любой последующий запуск будет быстрым.

Но если вы добавите параметр runtime: shiny в YAML, то каждый запуск займет 10 секунд.

(Вопрос PS: есть ли лучший способ проверить, используется ли кеш фрагментов кода?)


person DeanAttali    schedule 14.05.2015    source источник


Ответы (1)


Я столкнулся с той же проблемой, когда в runtime: shiny переключатель cache игнорировался.

В настоящее время существует обходной путь, использующий runtime: shiny_prerendered и context="data" с cache=TRUE:

---
title: "Cache test"
output: html_document
runtime: shiny_prerendered
---

```{r,context="data", cache=TRUE}
Sys.sleep(10)
```

это ведет себя так, как ожидалось; при первом запуске рендеринг занимает 10 секунд; при всех последующих запусках используется кешированный фрагмент.

person Janna Maas    schedule 22.05.2017
comment
Да, этот блестящий пререндер - отличное дополнение от rstudio :) - person DeanAttali; 22.05.2017
comment
@DeanAttali Если сработает, не забудьте принять ответ. - person Yihui Xie; 01.09.2017