私は2^31以上の観測値を含む大量のデータを扱っています。実際の観測回数は35億回にも及ぶ。2^31以上の観測値を持つbiglmの使い方
私はRパッケージ "biglm"を使用して、約70の予測変数で回帰を実行しています。私は一度に100万行のデータを読み込み、回帰結果を更新します。データは、Rライブラリ "ffdf"を使用してffdf形式で保存され、すばやくロードし、すべてのRAMを使い果たしません。ここで
は、私が使用していたコードの基本的なアウトラインです:
library(ff,ffbase,biglm)
load.ffdf(dir='home')
dim(data) #the ffdf contains about 70 predictors and 3.5 billion rows
chunk_1 <- data[1:1000000,]
rest_of_data <- data[1000000:nrow(data),]
# Running biglm for first chunk
b <- biglm(y~x1+x2+...+x70, chunk_1)
chunks <- ceiling((nrow(rest_of_data)/1000000)
# Updating biglm results by iterating through the rest of the data chunks
for (i in seq(1,chunks)){
start <- 1+((i-1))*1000000
end <- min(i*1000000,nrow(d))
d_chunk <- d[start:end,]
b<-update(b,d_chunk)
}
結果は素晴らしい見て、データの各チャンクでモデルを更新からの観測の累積数が2を超えるまで、すべてがスムーズに実行されています^ 31の観測。次に、読み取るエラーが発生する
In object$n + NROW(mm) : NAs produced by integer overflow
このオーバーフローの問題を回避するにはどうすればよいですか?あなたの助けを前もってありがとう!
@DavidArenburg現在、64ビットシステムを使用していますが、私はR 3.4.0を使用していました。しかし、私はまだ整数オーバーフローの問題にぶち当たっていました。 – Eunice
本当に1.8TBのデータセットがありますか? –