【问题标题】:Is there a way to read multiple CSV files from multiple folders in R?有没有办法从 R 中的多个文件夹中读取多个 CSV 文件?
【发布时间】:2021-08-02 22:25:16
【问题描述】:

我正在运行数据分析。我有一个由 100 个子文件夹组成的主文件夹(我正在分析的每个用户响应都有一个子文件夹)。每个子文件夹有约 50 个 csv 文件。有没有一种方法可以一次读取所有子文件夹中的所有 csv 文件并创建 1 个组合数据框?

谢谢!

【问题讨论】:

    标签: r dataframe 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")
    

    【讨论】:

    • 您可以编写一个简单的循环,将每个文件读入一个列表并将它们组合起来。将路径设置到主文件夹并在循环中执行 list.files(recursive = TRUE) ,您应该会看到每个文件夹都出现了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2018-06-10
    • 2018-01-27
    • 2015-03-29
    • 2018-08-02
    • 2016-06-14
    相关资源
    最近更新 更多