可以在交互式rmarkdown doc中使用knitr缓存块吗?

Dea*_*ali 9 r knitr r-markdown shiny shiny-server

我注意到当我runtime: shiny在YAML中有一个Rmd时,似乎没有从缓存中读取代码块.我想知道是否使用闪亮引擎进行rmarkdown只是不支持块缓存,或者我做错了什么?

示例Rmd文件:

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

```{r cache=TRUE}
Sys.sleep(10)
```
Run Code Online (Sandbox Code Playgroud)

如果你运行5次,只有第一次需要10秒,任何后续运行都会很快.

但是如果你将runtime: shiny选项添加到YAML,那么每次运行都需要10秒.

(PS问题:有没有更好的方法来测试是否正在使用代码块缓存?)

小智 2

我遇到了同样的问题,在 中runtime: shinycache开关被忽略了。

现在有一个解决方法,使用runtime: shiny_prerenderedand context="data"with cache=TRUE

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

```{r,context="data", cache=TRUE}
Sys.sleep(10)
```
Run Code Online (Sandbox Code Playgroud)

这符合预期;第一次运行时,渲染需要 10 秒;在所有后续运行中,都会使用缓存的块。

  • 是的,这个闪亮的预渲染是 rstudio 的一个很棒的补充:) (2认同)