给定20k csv文件,以及定义csv文件包含的数据组的tibble& csv文件的文件名:
df <- tibble(
group = c("group_1", "group_1", "group_2", "group_3"),
file_name = c("file_1.csv", "file_2.csv", "file_3.csv", "file_4.csv")
)
我需要将csv文件和rbind导入数据帧,但每个组都需要单独的数据框
文件可能没有相同的列,因此如果您只是导入所有文件并在步骤1绑定,则稍后会删除列。理想情况下,我需要一个以组开头的进程,读取相关文件,绑定行,然后输出为与组相同的数据帧。
我可以用lapply,read.csv&amp ;;导入csv文件。 bind_rows,但我似乎无法弄清楚如何根据有多少组来推广该过程。
优选基于lapply或purrr的解决方案。
干杯
答案 0 :(得分:0)
尝试:
dff <- tibble(
group = c("group_1", "group_1", "group_2", "group_3"),
file_name = c("file_1.csv", "file_2.csv", "file_3.csv", "file_4.csv")
)
lapply(split(dff, dff$group), function(x) {
do.call(rbind, lapply(x$file_name, read.csv))
})
我希望这会有所帮助。