【发布时间】:2021-08-02 22:25:16
【问题描述】:
我正在运行数据分析。我有一个由 100 个子文件夹组成的主文件夹(我正在分析的每个用户响应都有一个子文件夹)。每个子文件夹有约 50 个 csv 文件。有没有一种方法可以一次读取所有子文件夹中的所有 csv 文件并创建 1 个组合数据框?
谢谢!
【问题讨论】:
我正在运行数据分析。我有一个由 100 个子文件夹组成的主文件夹(我正在分析的每个用户响应都有一个子文件夹)。每个子文件夹有约 50 个 csv 文件。有没有一种方法可以一次读取所有子文件夹中的所有 csv 文件并创建 1 个组合数据框?
谢谢!
【问题讨论】:
假设文件名都具有 .csv 的扩展名,计算所有 csv 文件的路径,然后使用 Map 对每个路径使用 read.csv。这将创建一个数据框列表 L。列表名称将是路径。如果 csv 文件都有相同的列,那么我们可以使用最后一行来创建一个数据框。它将有一个路径列,用于标识每行来自哪个路径。
paths <- Sys.glob("*/*.csv")
L <- Map(read.csv, paths)
dplyr::bind_rows(L, .id = "path")
或在管道中表达
library(dplyr)
"*/*.csv" %>%
Sys.glob %>%
Map(read.csv, .) %>%
bind_rows(.id = "path")
【讨论】: