【问题标题】:Can't load a lot of .txt files from a directory [closed]无法从目录中加载大量 .txt 文件[关闭]
【发布时间】:2017-04-23 05:55:49
【问题描述】:

我想我已经看到了我的问题的解决方案,但它们对我没有用。

我的目录中有很多 .txt 文件需要加载到 R 中。

如何上传这些文件,根据文件的最后 2 个字符命名每个文件?另一种方法是将它们全部上传为 rbind,而不需要将集合命名为某个特定的标题。

【问题讨论】:

    标签: r text import read.table


    【解决方案1】:

    类似的东西:

    file.list <- list.files(pattern='*.txt')
    df.list <- sapply(file.list, read.table, simplify = FALSE)
    

    会起作用。现在您已将所有文件加载到一个列表中。

    如果您希望将它们放在一个数据框中,例如:

    library(dplyr)
    df <- bind_rows(df.list, .id = "id")
    

    现在您有了一个带有id-列的数据框,其中包含文件名。或者,您可以使用 data.table-package 中的rbindlist

    library(data.table)
    df <- rbindlist(df.list, idcol = "id")
    

    【讨论】:

    • 我怎样才能把 sep = ';'还是在 sapply 中使用 read.table 中的 fill = TRUE?
    • @ArthurCarvalhoBrito 像这样:sapply(file.list, read.table, sep = ';', simplify = FALSE)
    • 我在使用 fill = TRUE 时遇到错误。它说Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : line 2 did not have 11 elements 如果我说,我得到Error in FUN(X[[i]], ...) : no lines available in input
    • 我不知道会发生什么,因为如果我尝试使用常规例程单独读取文件,则不会出错。
    • @ArthurCarvalhoBrito 在不了解数据的情况下,很难说出导致该错误消息的原因。也许使用skip.blank.lines = TRUE 可能会有所帮助。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多