在缓存目录中,可以lazyLoad
用来查看块末尾的环境。但是,块的输出(如果编译了文档,则将输出)存储在哪里?
使用源!
在这里查看源代码 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
`
您可以通过以下方式检查这些对象 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”变成行,并且应该看起来像原始输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句