1億1000万行8列弱の大きなidoファイルを読みたい。列は、2つの整数列と6つの論理列で構成されています。区切り文字"|"
はファイルで使用されます。使っread.big.matrix
てみましたが、永遠にかかりました。私も試しdumpDf
てみましたが、RAMが不足しました。ff
良いパッケージだと聞いてみましたが、エラーに苦労しています。なんらかの形で読めたら、この表を使って分析したいと思います。誰かが素晴らしいだろう提案があれば。よろしく、ローカン
2 に答える
すべての提案をありがとう。エラーを機能させることができなかった理由をなんとか理解できました。誰も私の愚かな間違いを二度と犯さないように、私はあなたにすべての答えと提案をします。
まず第一に、私に与えられていたデータにはいくつかのエラーが含まれていたので、私は最初から失敗する運命にありました。同僚が別のソフトウェアでそれに遭遇するまで、私は気づいていませんでした。整数を含む列にいくつかの文字が含まれていたため、read.table.ff
パッケージがデータセットを読み込もうとしたときに、どういうわけか混乱したか、わかりません。別のデータサンプルが与えられたとしても、16,000,000行と8列で正しいエントリがあり、完全に機能しました。私が実行したコードは次のとおりで、読み取るのに約30秒かかりました。
setwd("D:/data test")
library(ff)
ffdf1 <- read.table.ffdf(file = "test.ido", header = TRUE, sep = "|")
お時間をいただきありがとうございました。回答についてご不明な点がございましたら、お気軽にお問い合わせください。できる限りサポートさせていただきます。
分析にすべてのデータが本当に必要ですか? おそらく、データセットを集計することができます (たとえば、1 分間の値から 1 日の平均まで)。この集計は 1 回だけ実行する必要があり、できればチャンクで実行できます。このように、すべてのデータを一度にメモリにロードする必要があります。
チャンクでの読み取りは を使用して行うことができます。scan
重要な引数はskip
とn
です。または、データをデータベースに入れ、その方法でチャンクを抽出します。パッケージの関数を使用してplyr
チャンクを並行して実行することもできます。例については、私のこのブログ投稿を参照してください。