【问题标题】:Import many .txt files, combine them into one data frame along with file names导入多个 .txt 文件,将它们与文件名组合成一个数据框
【发布时间】:2016-05-17 01:16:20
【问题描述】:

我有很多.txt 文件。您可以下载2 of them from here。 我将它们导入 RStudio 并使用下面的代码将它们组合成一个 data.frame

setwd("C:/Users/aelwan/Dropbox/import_txt")
data<-do.call(rbind, lapply(list.files(pattern = ".txt"), 
                            read.table, 
                            header=T))
    head(data, 12)
     observed    simulated
1         2         4
2         5         5
3         5         2
4         2         5
5         5         2
6         2        12
7         1        56
8         2        75
9         3        78
10        6        75
11        7        65
12        7        53

我想将文件名也添加到data.frame,如下所示

     observed    simulated    ID
1         2         4         simu1           
2         5         5         simu1
3         5         2         simu1
4         2         5         simu1
5         5         2         simu1
6         2        12         simu1
7         1        56         simu2
8         2        75         simu2
9         3        78         simu2
10        6        75         simu2
11        7        65         simu2
12        7        53         simu2

有什么建议吗?

【问题讨论】:

    标签: r import dataframe


    【解决方案1】:

    如果您使用for 循环,则可以添加所需的数字标签列:

    files.list <- list.files(pattern = ".txt")
    df <- data.frame(observed=integer(),
                     simulated=integer(),
                     ID=character(),
                     stringsAsFactors=FALSE)
    
    for (i in 1: length(files.list)) {
        df.next <- read.table(files.list[[i]], header=TRUE)
        df.next$ID <- paste0('simu', i)
        df <- rbind(df, df.next)
    }
    

    【讨论】:

    • 感谢蒂姆的时间和帮助。它不仅仅是simu1。还有simu2。此外,实际文件数从simu1到simu70(共70个文本文件代表70个模拟。
    • 如果所有 .txt 文件都有准确的行数,我可以自己创建第三列 ID。但是,它们具有不同的行数。我认为可能有一种方法可以导入文件名(不带 .txt)并将其添加到 ID 列中。
    • 非常感谢蒂姆。我非常感谢您的时间和帮助。它完美地工作:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多