从大型 data.frame 写入多个 excel/csv 文件
Write multiple excel/csv files from a large data.frame
我有一个超过 500,000 行的大型数据框。我希望将其导出到具有特定行限制(例如 100,000 行)的多个 excel/csv 文件。
我的解决方案是:
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.xlsx
,path2.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'))
}
以上将在您的工作目录中创建 file_name1.xlsx、file_name2.xlsx、....等。
我有一个超过 500,000 行的大型数据框。我希望将其导出到具有特定行限制(例如 100,000 行)的多个 excel/csv 文件。
我的解决方案是:
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.xlsx
,path2.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'))
}
以上将在您的工作目录中创建 file_name1.xlsx、file_name2.xlsx、....等。