9

約2000万行の入力ファイルがあります。ファイルのサイズは約1.2Gです。とにかくRでデータをプロットできますか。一部の列にはカテゴリがあり、ほとんどは数値です。

入力ファイルの小さなサブセットで約800K行を使用してプロットスクリプトを試しましたが、約8GのRAMがありますが、すべてのデータをプロットできないようです。これを行う簡単な方法はありますか?

4

5 に答える 5

14

希望するプロットの種類についてより明確な説明がなければ、具体的な提案をすることは困難です. ただし、一般に、プロットに 2000 万点をプロットする必要はありません。たとえば、時系列は、スプライン フィットまたはある種の平均 (時間ごとのデータを毎日の平均に集計するなど) によって表すことができます。または、データのサブセットを描画します。たとえば、時系列の例では 1 日 1 ポイントのみを描画します。したがって、あなたの課題は、プロットで20Mポイント、または800kポイントを獲得することではなく、伝えたいメッセージを伝える方法でデータを効果的に集約する方法だと思います.

于 2012-05-30T07:50:57.340 に答える
3

ラスターファイルデバイスに直接プロットする(png()たとえば、呼び出す)方がはるかに高速です。プロットrnorm(100000)してみましたが、ラップトップではX11カイロプロットに2.723秒かかりましたが、pngデバイスは2.001秒で終了しました。100万ポイントで、数字は27.095秒と19.954秒です。

私はFedoraLinuxを使用しており、ここにコードがあります。

f = function(n){
x = rnorm(n)
y = rnorm(n)
png('test.png')
plot(x, y)
dev.off()}

g = function(n){
x = rnorm(n)
y = rnorm(n)
plot(x, y)}

system.time(f(100000))
system.time(g(100000))
于 2012-05-30T05:40:35.157 に答える
1

memory.limit() でメモリを増やすと役に立ちました...これは、ggplot で 36K 近くのレコードをプロットするためのものです。

于 2017-12-05T12:17:08.390 に答える
0

利用可能なメモリをmemory.limit(size=2000)(またはそれ以上のもので)拡張すると役立ちますか?

于 2012-05-29T20:45:05.953 に答える