ライブラリを使用ff
しffbase
て大きな csv ファイルを管理しています (~40Go および 275e6 観測)。このファイルをその列の 1 つ (因子列) に従って分割/分割したいと思います。
通常のデータ フレームでは、次のようにします。
a <- data.frame(rnorm(10000,0,1),
sample(1:100,10000,replace=T),
sample(letters,10000,replace = T))
names(a) <- c('V1','V2','V3')
a_partition <- split(a,a$V3)
names(a_partition) <- paste("df",names(a_partition),sep = "_")
list2env(a_partition,globalenv())
しかし、機能はff
ありffbase
ませんsplit
。それで、ffbase
ドキュメントを見て、次のように見つけffdfply
て使用しようとしました:
ffa <- as.ffdf(a)
ffa_partititon <- ffdfdply(x = ffa,split = ffa$V3)
残念ながら、ログメッセージが表示されます:
分割サイズの計算 分割
位置の構築
分割 1/1 での作業、26 個の分割要素の RAM でのデータの抽出、
合計、0.00015 GB、
BATCHBYTES を使用して指定された最大指定データは 0.01999 GB
... 選択したデータに FUN を適用
エラー: 引数 " FUN" がありません。デフォルトはありません
私は試してみFUN = as.data.frame
ました(関数の結果はデータフレームでなければならないため)運がありません:そうすることでffa_partitionがffaのコピーになります...
ffdf を分割するにはどうすればよいですか?