在缓存目录中,可以使用lazyLoad
查看块末尾的环境。但是存储的块的输出(如果编译文档将打印)会在哪里存储?
答案 0 :(得分:3)
使用来源!
查看此处的源代码https://github.com/yihui/knitr/blob/master/R/cache.R
您可以看到此处(在new_cache
函数内)
# when cache=3, code output is stored in .[hash], so cache=TRUE won't lose
# output as cacheSweave does; for cache=1,2, output is the evaluate() list
cache_output = function(hash, mode = 'character') {
get(sprintf('.%s', hash), envir = knit_global(), mode = mode, inherits = FALSE)
}
即。它作为对象存储在knit_global
environemnt`
您可以按ls(knitr::knit_global(), all = TRUE)
即。
下面的3个简单块```{r, cache=TRUE}
summary(cars)
```
```{r }
ls(knitr::knit_global(), all = TRUE)
```
```{r }
get(ls(knitr::knit_global(), all = TRUE)[1], knitr::knit_global())
```
提供以下输出
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2
## 1st Qu.:12.0 1st Qu.: 26
## Median :15.0 Median : 36
## Mean :15.4 Mean : 43
## 3rd Qu.:19.0 3rd Qu.: 56
## Max. :25.0 Max. :120
ls(knitr::knit_global(), all = TRUE)
## [1] ".Preview-2b40490e2591_cache/unnamed-chunk-1_766fcb86fd875984b372e3c23210bfad"
## [2] "metadata"
get(ls(knitr::knit_global(), all = TRUE)[1], knitr::knit_global())
## [1] "\n```r\nsummary(cars)\n```\n\n```\n## speed dist \n## Min. : 4.0 Min. : 2 \n## 1st Qu.:12.0 1st Qu.: 26 \n## Median :15.0 Median : 36 \n## Mean :15.4 Mean : 43 \n## 3rd Qu.:19.0 3rd Qu.: 56 \n## Max. :25.0 Max. :120\n```"
如果已退出R,则可以使用load
命令从缓存文件夹中的文件* .RData加载数据。另外,要输出get
的结果,请考虑使用cat
来转换" \ n"成行,应该看起来像原始输出。