非常に大きなデータ セットがあり、既に 50 個に分割しています。つまり、基本的にファイルは次のようになります。 file1 file2 file3 。. . file50 (データ フレーム)
file_total <- c(file1,...,file50)
これがリストに結合されることはわかっていますがrbind
、すべてのデータ全体が巨大で、plyr ライブラリの実行に永遠にかかるため、使用できません。
そして、各ファイルで、1 つの要因に基づいてそれらを分割し、「id」という名前を付けて、各 id サブセットを .csv ファイルに書き込むことができるようにする必要があります。
これまでのところ、私のコードは次のとおりです。
d_split <- split(file1, file1[1])
library(plry)
id <- unlist(lapply(d_split,"[",1,1)) # this returns the unique id
for (j in seq_along(id))
{
write.csv(d_split[[j]], file=paste(id[j], "csv", sep="."))
}
これは動作します!!
しかし、別の for ループに入れようとすると機能しません。
for (i in file_total)
{
d_split <- split(i, i[1])
id <- unlist(lapply(d_split,"[",1,1))
for (j in seq_along(id))
{
write.csv(d_split[[j]], file=paste(id[j], "csv", sep="."))
}
}
次のエラー メッセージに戻ります。
Error in FUN(X[[1L]], ...) : incorrect number of dimensions
50 個のファイルをコピーしてコードに貼り付けることで手動で実行できることを意味していましたが、ワンクリックで解決できるように、誰かが私のコードを修正できるかどうか疑問に思っていました.