读取 csv 文件以根据分组变量分隔数据帧

Read csv files to separate dataframes based on a grouping variable

给定 20k 个 csv 文件,以及定义 csv 文件包含的数据组的小标题以及 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 和 bind_rows 导入 csv 文件,但我似乎无法弄清楚如何根据那里有多少组来概括该过程是。

最好是 lapply 或基于 purrr 的解决方案。

干杯

尝试:

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))
})

希望对您有所帮助。