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

时间:2015-05-14 20:19:05

标签: r shiny knitr r-markdown shiny-server

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

示例Rmd文件:

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,在 static navigationOptions = () => ({ title: 'CHAT', tabBarLabel: 'Chat', tabBarVisible: false, tabBarIcon: ({ tintColor }) => ( <View> <Icon name="comment" style={{ color: tintColor, fontSize: 32 }} /> </View> ), }); 中,忽略了runtime: shiny开关。

现在有一种解决方法,使用cacheruntime: shiny_prerendered context="data"

cache=TRUE

这表现得像预期的那样;在第一次运行时,渲染需要10秒;在所有后续运行中,使用缓存的块。