私はときどきたくさんのオブジェクトを扱うことがありますが、チャンク間のメモリの問題があるため、最初からやり直すのはいいことです。次の例を検討してください。
警告: 8 GB の RAM があります。量が少ないと、これで全部食べてしまうかもしれません。
<<chunk1>>=
a <- 1:200000000
@
<<chunk2>>=
b <- 1:200000000
@
<<chunk3>>=
c <- 1:200000000
@
この場合の解決策は次のとおりです。
<<chunk1>>=
a <- 1:200000000
@
<<chunk2>>=
rm(a)
gc()
b <- 1:200000000
@
<<chunk3>>=
rm(b)
gc()
c <- 1:200000000
@
ただし、私の例(大規模なデータセットに依存しているため投稿できます)では、すべてのオブジェクトを削除して実行した後でも、gc()
すべてR
のメモリがクリアされません(一部のみ)。理由は次の?gc
とおりです。
However, it can be useful to call ‘gc’ after a large object has
been removed, as this may prompt R to return memory to the
operating system.
重要な単語に注意してくださいmay
。R
このように指定される状況が多いmay
ため、バグではありません。
knitr
新しいR
セッションを開始できるチャンク オプションはありますか?