【问题标题】:how to read one file from multiple folders?如何从多个文件夹中读取一个文件?
【发布时间】:2021-01-09 14:20:05
【问题描述】:

在 R 中,如果我有一个名为“main”的文件夹,其中有 10 个从 A、B、C...J 调用的子文件夹,每个子文件夹都有一个 .txt 文件,子文件夹 A 有一个 1.txt,子文件夹B有一个2.txt,不输入每个文件的名称,如何读取所有这些文件?

我用过这段代码

data.path="C:/file/path/main"
files=list.files(path=data.path, recursive =T, pattern = "*.txt")
read_file= read.delim(files,header = TRUE, sep = "\t")

并出现此消息:没有这样的文件或目录

【问题讨论】:

    标签: r directory


    【解决方案1】:
    library(readr)
    
    data.path <- "C:/file/path/main"
    files <- list.files(path = data.path, pattern = "*.txt", full.names = TRUE)
    Then you can use `lapply` function to apply `read_csv` to your files:
    
    data <- lapply(files, read_csv)
    
    You can also use `read_csv` in order to read text files.
    

    【讨论】:

    • 由于使用 lapply 函数,您将获得一个列表,但该列表的每个元素都是一个数据框。因此,您可以使用 rbindlist 函数将其转换为数据框并按行绑定它们:library(data.table)rbindlist(data)
    • 感谢您的努力,但它不起作用
    • 我在 251 文件夹中有 285 个 txt 文件,我只需要 specific_name.txt 文件将它们保存为数据框,所以我输入您的代码,如文件
    • 我模拟了你的情况,通过将 recursive = TRUE 添加到 list.files 函数并删除 pattern 参数,我可以阅读所有内容。
    猜你喜欢
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多