11.6 巨大オブジェクトをキャッシュする
チャンクオプション cache = TRUE
を使うと, キャッシュされたオブジェクトは R セッション内で遅延読み込みされます. これはオブジェクトが実際にコード内で使用されるまでキャッシュデータベースから読み込まれないことを意味します. このおかげで, 以降の文書内で全てのオブジェクトが使われるわけではない場合にメモリを多少節約することができます. 例えば大きなデータオブジェクトを読み込んだが, 以降の分析ではその一部しか使わないなら, 元のデータオブジェクトはキャッシュデータベースから読み込まれません.
```{r, read-data, cache=TRUE}
full <- read.csv("HUGE.csv")
rows <- subset(full, price > 100)
# next we only use `rows`
```
```{r}
plot(rows)
```
しかし, オブジェクトが大きすぎるときは, このようなエラーに遭遇するかもしれません.
in lazyLoadDBinsertVariable(vars[i], ...
Error : ...
long vectors not supported yet Execution halted
この問題が発生したら, チャンクオプション cache.lazy = FALSE
で遅延読み込みを無効にしてみてください. チャンク内の全てのオブジェクトが即座にメモリに読み込まれるでしょう.