从大型data.frame中写入多个excel/csv文件

M.Q*_*sim 0 csv excel r xlsx xlsxwriter

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

我的解决方案是:

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")
Run Code Online (Sandbox Code Playgroud)

有没有优雅的方法呢?谢谢

Bra*_*sen 6

你可以试试像......

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")
)
Run Code Online (Sandbox Code Playgroud)

更改1e5以更改每个中断中包含的行数.应该输出像path1.xlsx,path2.xlsx...