5

1億1000万行8列弱の大きなidoファイルを読みたい。列は、2つの整数列と6つの論理列で構成されています。区切り文字"|"はファイルで使用されます。使っread.big.matrixてみましたが、永遠にかかりました。私も試しdumpDfてみましたが、RAMが不足しました。ff良いパッケージだと聞いてみましたが、エラーに苦労しています。なんらかの形で読めたら、この表を使って分析したいと思います。誰かが素晴らしいだろう提案があれば。よろしく、ローカン

4

2 に答える 2

8

すべての提案をありがとう。エラーを機能させることができなかった理由をなんとか理解できました。誰も私の愚かな間違いを二度と犯さないように、私はあなたにすべての答えと提案をします。

まず第一に、私に与えられていたデータにはいくつかのエラーが含まれていたので、私は最初から失敗する運命にありました。同僚が別のソフトウェアでそれに遭遇するまで、私は気づいていませんでした。整数を含む列にいくつかの文字が含まれていたため、read.table.ffパッケージがデータセットを読み込もうとしたときに、どういうわけか混乱したか、わかりません。別のデータサンプルが与えられたとしても、16,000,000行と8列で正しいエントリがあり、完全に機能しました。私が実行したコードは次のとおりで、読み取るのに約30秒かかりました。

setwd("D:/data test")
library(ff)
ffdf1 <- read.table.ffdf(file = "test.ido", header = TRUE,  sep = "|")

お時間をいただきありがとうございました。回答についてご不明な点がございましたら、お気軽にお問い合わせください。できる限りサポートさせていただきます。

于 2012-08-10T11:21:34.407 に答える
2

分析にすべてのデータが本当に必要ですか? おそらく、データセットを集計することができます (たとえば、1 分間の値から 1 日の平均まで)。この集計は 1 回だけ実行する必要があり、できればチャンクで実行できます。このように、すべてのデータを一度にメモリにロードする必要があります。

チャンクでの読み取りは を使用して行うことができます。scan重要な引数はskipnです。または、データをデータベースに入れ、その方法でチャンクを抽出します。パッケージの関数を使用してplyrチャンクを並行して実行することもできます。例については、私のこのブログ投稿を参照してください。

于 2012-08-06T08:44:58.553 に答える