下面的簡單test.Rmd knitr文件不同的行爲 「LS()」,這取決於高速緩存= T或高速緩存= F在knitr RMD文件
```{r}
opts_chunk$set(cache=TRUE)
```
```{r}
x <- 1
```
```{r}
x
ls()
```
從Unix外殼與處理時:
R -e 'library(knitr) ; knit("test.Rmd")'
pandoc -s -f markdown -t latex test.md -o test.tex
pdflatex test.tex
產生具有以下輸出pdf文件(檢驗.pdf):
x <- 1
x
## [1] 1
ls()
## character(0)
即,最後一個碼塊的輸出顯示冷杉st x
的內容,而ls()
調用不顯示工作區中存在名爲x
的對象。如果我通過刪除第一個代碼塊來禁用cache
,則ls()
將顯示爲x
,正如我預料的那樣。在使用opts_chunk$set(cache=TRUE)
時,我無法從文檔中找出ls()
這種行爲的原因。有人可以向我解釋爲什麼會發生這種情況,我怎麼能有ls()
行爲與緩存和沒有緩存相同?
謝謝!!
robert。 PS:
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
僅供參考:這個問題已經被固定在[開發版本(https://github.com/yihui/knitr#readme)。 – 2013-04-07 04:46:57