从一个大的data.frame写入多个excel / csv文件

我有一个超过50万行的大型数据框。 我希望将其导出到具有特定行限制的多个excel / csv文件(例如100,000行)。

我的解决scheme是:

library(openxlsx) write.xlsx(df[1:100000,], "path") write.xlsx(df[100001:200000,], "path") write.xlsx(df[200001:300000,], "path") write.xlsx(df[300001:400000,], "path") write.xlsx(df[400001:500000,], "path") 

有没有优雅的方式来做到这一点? 谢谢

你可以尝试像…

 breaks <- split(1:nrow(df), ceiling(seq_along(1:nrow(df))/1e5)) lapply(breaks, function(x) write.xlsx( df[x,], paste0("path",substr(x[1],1,1),".xlsx") ) 

更改1e5以更改要在每个中断中包含的行数。 应该输出类似于path1.xlsxpath2.xlsx ,…

 batchSize=100; # number of rows in single output file filename="file_name"; # prefix of output file chunks=split(df, floor(0:(nrow(df)-1)/batchSize)) for (i in 1:length(chunks)) { write.xlsx(chunks[[i]],paste0(filename,i,'.xlsx')) } 

以上将在您的工作目录中创buildfile_name1.xlsx,file_name2.xlsx,….等。