次の簡単なテスト.Rmd Knitr ドキュメント
```{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 ファイル (test.pdf) を生成します。
x <- 1
x
## [1] 1
ls()
## character(0)
つまり、最後のコード チャンクの出力は最初にx
while の内容を表示しますが、ワークスペースでls()
呼び出さx
れたオブジェクトがあることは表示されません。cache
最初のコード チャンクを削除して無効にすると、期待どおりにls()
表示x
されます。ls()
ドキュメントから、 whenが使用されるこの動作の理由を理解できませんでした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