循环写入多个 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)))
使用 purrr
和 readr
的答案
n <- 5000
split(df1, ((seq_len(nrow(df1)))-1)%/%n+1L) %>%
purrr::iwalk(., ~ readr::write_csv(.x, paste0("project", .y, ".csv")))
我有一个包含 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)))
使用 purrr
和 readr
n <- 5000
split(df1, ((seq_len(nrow(df1)))-1)%/%n+1L) %>%
purrr::iwalk(., ~ readr::write_csv(.x, paste0("project", .y, ".csv")))