1

実際のサイズ672MBの大きなファイルをRに読み込もうとすると、システムメモリの使用量が0.98Gから3.6Gに急増したことがわかりました(4 GBのメモリデスクトップを使用しています)。つまり、ファイルをメモリに保存するには数倍のスペースが必要であり、メモリ不足として読み込んだ後は何も計算できません。それは正常ですか?私が使用したコード:a=read.table(file.choose(),header=T,colClasses="integer",nrows=16777777,comment.char="",sep="\t") ファイルには167772XX行が含まれています。

実行前後のgc()ここに画像の説明を入力してください

これが何を意味するのかわからない。

4

1 に答える 1

6

テキストファイルは672MBです。すべての整数が1桁であると仮定すると、Rオブジェクトが約2*672MBであることが完全に合理的です。

テキストファイルの各文字は1バイトです。Rは整数を4バイトに格納します(を参照?integer)。つまり、ファイルには"\t"1バイト文字として格納された〜336MBの整数と〜336MBの整数が含まれています。

Rは、これらの1バイト文字を読み取り、4バイト整数として格納し、... 336 * 4=1344MBです。出力の2行目と2列目gcは1345.6で、これは1344MB+元の1.6MBに相当します。

于 2013-01-31T23:04:15.813 に答える