在for循环中追加多个文件中的数据帧

时间:2017-11-13 17:30:58

标签: r append

我有一个脚本,可以从* xlsx文件创建数据框。现在我想在脚本的顶部添加一个循环,它将读取多个文件并按行将数据框附加在一起。所有列名都匹配。我有以下示例代码和目前为止的内容。据我所知,脚本正在读取这两个文件,但每个文件都在写入前一个文件而不是附加到前一个文件。任何帮助将不胜感激!

filenames <- Sys.glob("*.xlsx")
data.files = list.files(pattern = "*.xlsx")

datalist = list()

for( title in c(paste(filenames , sep="."))) {
    # ... make some data (final table named "Stats")
    df <- data.frame(Stats)
    df$title <- title    # to keep track of file  
    datalist[[title]] <- df    # add it to your list
}

big_data = do.call(rbind, datalist)

1 个答案:

答案 0 :(得分:1)

为什么不尝试在循环中追加data.frames?类似的东西:

final.df <- data.frame()
for( title in c(paste(filenames , sep="."))) {
    # ... make some data (final table named "Stats")
    df <- data.frame(Stats)
    final.df <- rbind(final.df, df)
}

big_data <- final.df

列可能存在一些问题,但您可以识别第一个数据框,只需将final.df替换为第一个数据框。