Rで、いくつかのtimeseriesデータをxtsとしてhttp://www.truefx.com/?page=downloadsから結合して変換しようとしていますが、ファイルが大きく、多数のファイルがあるため、ノートパソコンで問題が発生しています。それらは、zipファイルとして圧縮されたcsvファイルとして保存されます。Rのメモリを解放する
ハードディスクをダウンロードして解凍するのは簡単です(ただし、ハードディスクドライブには十分なスペースが必要です)。
1ヶ月分のデータ用に350MB以上のファイルをRにロードすると、data.table
パッケージの新しいfread()
ファンクションを使用するのが合理的に簡単です。
タイムスタンプが簡単に読み取られ、中間の列が生成されるように、一部のデータ変換可能な変換が(関数内で)実行されます。その後、データテーブルはハードドライブ上のRDataファイルとして保存され、データテーブルオブジェクトへの参照はすべてワークスペースから削除され、削除後にgc()
が実行されます...ただし、アクティビティモニタでRセッションを見るとMacから実行)...それはまだRAMの1GBを占めているように見える...と物事は少し遅れているようだ...私は同時にCSVファイルの価値をロードするつもりだった、変換するそれらを組み合わせて1つのxtsオブジェクトを作成します。これは1か月で1GBのRAMを使用すると実行不可能に見えます。
私は各ファイルを順番にダウンロードして変換し、Rをシャットダウンして保存し、RDataファイルをロードしてバインドするまで繰り返すことができますが、より効率的な方法があることを願っていました。これを実行して、データテーブルへの参照をすべて削除した後、「正常」でないか、RAM使用率のスタートアップレベルに戻ります。 gc()
よりもメモリを消去する方が良いでしょうか?どんな提案も大歓迎です。
あなたが持っています同じ症状があれば'fread'の代わりに' read.csv'を使用しますか? – GSee
これは、 'x < - read.csv(を使用して、http://stackoverflow.com/questions/1467201/forcing-garbage-collection-to-run-in-r-with-the-gc-command – redmode
に関連しているようです...) 'はメモリ使用量を1.2GBにしてから' rm(x) 'を実行し、その後に' gc() 'を実行すると894MBになります。 Rの起動/起動時に –