循环写入多个 CSV 文件

Write Multiple CSV files in a loop

我有一个包含 150 万行的 csv 文件,其中包含 2 列名称,email.I 想编写一个程序,当我在 R 中读取我的文件时,输出分为 5000 个数据在每个 csv 中。

也许我可以用一个循环来做到这一点:运行 从第 1 行到 5000 并将其保存为 project1.csv 然后 5001 到 10000 并保存到 project2.csv 然后 10001 直到15000 in project3.csv 在我的工作目录中。有什么建议吗?

假设'df1'是我们需要每5000行分割并保存在一个新文件中的data.frame,我们split通过创建一个基于分组索引的数据集list (lst) 的行序列。我们遍历 list 个元素的序列 (lapply(...),并用 write.csv.

写入新文件
n <- 5000
lst <-  split(df1, ((seq_len(nrow(df1)))-1)%/%n+1L)
invisible(lapply(seq_along(lst), function(i) 
   write.csv(lst[[i]], file=paste0('project', i, '.csv'), row.names=FALSE)))

使用 purrrreadr

的答案
n <- 5000
split(df1, ((seq_len(nrow(df1)))-1)%/%n+1L) %>%
  purrr::iwalk(., ~ readr::write_csv(.x, paste0("project", .y, ".csv")))