約2000万行の入力ファイルがあります。ファイルのサイズは約1.2Gです。とにかくRでデータをプロットできますか。一部の列にはカテゴリがあり、ほとんどは数値です。
入力ファイルの小さなサブセットで約800K行を使用してプロットスクリプトを試しましたが、約8GのRAMがありますが、すべてのデータをプロットできないようです。これを行う簡単な方法はありますか?
希望するプロットの種類についてより明確な説明がなければ、具体的な提案をすることは困難です. ただし、一般に、プロットに 2000 万点をプロットする必要はありません。たとえば、時系列は、スプライン フィットまたはある種の平均 (時間ごとのデータを毎日の平均に集計するなど) によって表すことができます。または、データのサブセットを描画します。たとえば、時系列の例では 1 日 1 ポイントのみを描画します。したがって、あなたの課題は、プロットで20Mポイント、または800kポイントを獲得することではなく、伝えたいメッセージを伝える方法でデータを効果的に集約する方法だと思います.
ラスターファイルデバイスに直接プロットする(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))
memory.limit() でメモリを増やすと役に立ちました...これは、ggplot で 36K 近くのレコードをプロットするためのものです。
利用可能なメモリをmemory.limit(size=2000)
(またはそれ以上のもので)拡張すると役立ちますか?