Rでは、時系列データのいくつかのセットをhttp://www.truefx.com/?page=downloadsからxtsとして結合して変換しようとしていますが、ファイルが大きく、多くのファイルがあるため、問題が発生しています私のノートパソコン。それらは、zip ファイルとして圧縮された csv ファイルとして保存されます。
それらをダウンロードして解凍するのは簡単です (ただし、ハード ドライブで多くのスペースを占有します)。
1 か月分のデータの 350MB 以上のファイルを R にロードすることは、パッケージの新しいfread()
関数を使用するとかなり簡単です。data.table
タイムスタンプを簡単に読み取ることができ、中間列が生成されるように、いくつかのデータテーブル変換が (関数内で) 行われます。次に、データテーブルが RData ファイルとしてハードドライブに保存され、データテーブルオブジェクトへのすべての参照がワークスペースから削除され、削除gc()
後に実行されます...ただし、アクティビティモニターで R セッションを確認すると (実行Mac から)...それでもほぼ 1GB の RAM を占有しているように見えます...そして、物事は少し遅れているように見えます...数年分の csv ファイルを同時に読み込んで変換するつもりでした。使用可能なデータテーブルに変換し、それらを組み合わせて単一の xts オブジェクトを作成します。これは、1 か月だけで 1 GB の RAM を使用する場合には実行不可能に思えます。
各ファイルを順番にダウンロードして変換し、保存してRをシャットダウンし、ロードしてバインドできるRDataファイルがたくさんできるまで繰り返すことができることはわかっていますが、これを行うためのより効率的な方法があるのではないかと期待していました。データテーブルへのすべての参照を削除すると、「通常」ではない、または RAM 使用量の起動レベルに戻ります。メモリをクリアするより良い方法はありますgc()
か? どんな提案でも大歓迎です。