-3

16 GB RAM を搭載した Unix OS で R プロセスを実行しています。以下の操作を行っている R セッションを実行しています。

サイズが約 350 MB の csv ファイルをデータ フレームにインポートします。次に、上で作成したデータ フレームに対して操作を実行して、一意のグループごとに上位 n 個の製品を選択します。

しかし、この R セッションが使用するメモリの量を確認すると、約 90% と表示され、その後自動的にセッションが強制終了されます。UNIX 上の R でのメモリ管理についてはあまり知りません。私のシステムの OS には 16 GB の RAM があり、私の R セッションは最大 700 MB (インポートされた CSV に 350 MB、作成される新しいデータ フレームに 350 MB) を使用する可能性があるため、90% を使用することはどのように可能でしょうか?システムのメモリが失われ、強制終了されます。UnixでRプロセスに割り当てられるメモリにデフォルトの制限はありますか? もしそうなら、それを増やすことはできますか?誰でも提案できますか。これに似た多くの投稿を調べましたが、解決策が見つかりませんでした。

4

1 に答える 1

4

あなたはあなたが持っているUnixフレーバーとそれが32ビットか64ビットかについては言いませんでした。それは重要です。

最初のテストとして、必要と思われるメモリの量を割り当ててみてください。

 m <- rep(NA, 0.8 * 16 * 1024 * 1024 * 1024 / 8)

また

 m <- matrix(NA, 0.8 * 16 * 1024 * 1024 * 1024 / 8, 1)

16 GBの場合、各要素は8バイトであり、システムをダウンさせないように全体の80%を要求しています。

次に、取得できるメモリの量がわかったら、ダニエルが提案したように実行し、方法を検討して、どれだけのメモリが必要になるかを確認します。

于 2013-02-16T14:09:35.040 に答える