下面是简单的test.rmd knitr文件
```{r}
opts_chunk$set(cache=TRUE)
```
```{r}
x <- 1
```
```{r}
x
ls()
```
当从 Unix shell 处理时:
R -e 'library(knitr) ; knit("test.Rmd")'
pandoc -s -f markdown -t latex test.md -o test.tex
pdflatex test.tex
生成具有以下输出的 pdf 文件 (test.pdf):
x <- 1
x
## [1] 1
ls()
## character(0)
也就是说,最后一个代码块的输出首先显示了调用的内容,x
而ls()
调用并没有显示x
在工作空间中调用了一个对象。cache
如果我通过删除第一个代码块来禁用它,那么会按我的预期ls()
显示。x
我无法从文档中弄清楚ls()
何时opts_chunk$set(cache=TRUE)
使用这种行为的原因。ls()
有人可以向我解释为什么会发生这种情况,以及在使用和不使用缓存的情况下我如何以相同的方式表现?
谢谢!!
罗伯特。ps:这是我sessionInfo()
附加到knit()
电话的时候:
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8
[5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.1
loaded via a namespace (and not attached):
[1] digest_0.6.3 evaluate_0.4.3 formatR_0.7 stringr_0.6.2 tools_2.15.1