これは精神的にこの質問に関連していますが、メカニズムは異なるに違いありません。
knitr
割り当てを含むチャンクをキャッシュしようとするdata.table
:=
と、そのチャンクが実行されていないかのように動作し、後のチャンクは:=
.
これはなぜですか?オブジェクトの検出はどのようknitr
に更新され、何がdata.table
混乱を引き起こしているのでしょうか?
を実行することで、これを回避できるようですDT = DT[, LHS:=RHS]
。
例:
```{r}
library(data.table)
```
Data.Table Markdown
========================================================
Suppose we make a `data.table` in **R Markdown**
```{r, cache=TRUE}
DT = data.table(a = rnorm(10))
```
Then add a column using `:=`
```{r, cache=TRUE}
DT[, c:=5]
```
Then we display that in a non-cached block
```{r, cache=FALSE}
DT
```
The first time you run this, the above will show a `c` column,
from the second time onwards it will not.
2 回目の実行での出力