【问题标题】:Write Multiple CSV files in a loop循环写入多个 CSV 文件
【发布时间】:2015-10-10 13:05:16
【问题描述】:

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

也许我可以通过循环来执行此操作:从第 1 行运行到 5000 并将其保存为 project1.csv,然后将 5001 保存到 10000,然后保存到 project2.csv,然后保存到我工作目录中 project3.csv 中的 10001 到 15000。有什么建议吗?

【问题讨论】:

    标签: r csv xls


    【解决方案1】:

    假设'df1'是data.frame,我们需要每5000行分段并将其保存在一个新文件中,我们split数据集通过创建基于行序列的分组索引到@987654323 @ (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)))
    

    【讨论】:

    • 谢谢,它的工作真棒......你几乎拯救了我的一天
    • 如果我有 7 列而不是 2 列会怎样
    • @Sandy2511 它应该是相同的代码,因为拆分取决于行而不是列。
    【解决方案2】:

    使用purrrreadr 的答案

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2018-01-12
      • 1970-01-01
      • 2016-08-29
      • 2021-07-06
      • 2019-07-21
      • 2019-08-04
      • 2015-10-25
      相关资源
      最近更新 更多