0

I am using R Studio for some data analysis. I have a 500MB .csv file. System specs: i5 + 4GB RAM. If I load the file in R, it takes up some 1.5GB of my RAM and I don't have enough RAM left for other operations. It gives errors like -

Error: cannot allocate vector of size 9.5MB

So, to save space, I decided to use SQLite. I stored my data in a SQLite database file. I want to know if there's a way I can do operations on the data without loading it in R. Using all those R functions directly on my SQLite database.

4

1 に答える 1

0

データベースへのアクセスは透過的ではないため、「これらすべての R 関数を SQLite データベースで直接」使用することはできません。ほとんどすべての R 関数は、データがメモリに存在することを想定しており、間接化を処理できません。

とはいえ、アプリケーションに必要な R 関数を SQL クエリに変換できる場合もあります。次に、最初にデータをロードせずに、SQLite でデータを直接操作できます。特に、一部の列を省略したり、一度に 1 つの行セットのみを照会したり、複数の行を 1 つに結合したりするクエリを実行できる場合があります。結果の data.frame はテーブル全体よりも小さくなり、アプリケーションには十分な場合があります。

他のすべてが失敗した場合は、64 ビット R と、十分なスワップ スペースを提供するように構成されたオペレーティング システムの使用を検討することをお勧めします。このようなセットアップでは、メモリを集中的に使用する操作には依然としてかなりの時間がかかる可能性があり、実行中にシステムが非常に遅くなる可能性があります。しかし、そのような見苦しいエラー メッセージが表示されることなく、最終的には成功するはずです。

于 2012-07-28T12:48:56.730 に答える