我有一个非常大的数据集,我已经把它分成了 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 个文件复制并粘贴到代码中来手动完成,但我只是想知道是否有人可以修复我的代码,以便一键解决。