在R中,最快的方法是将数千个文件读取并将其合并到一个数据帧中?

时间:2019-01-29 15:16:02

标签: r dataframe

我有超过50,000个文件的目录,我需要将这些目录合并到一个数据框中,并将文件名作为数据框中的一列包含在内。目前,这是我的操作方式:

files <- list.files(path="./")
df <- data.frame()
for (f in files){
  temp <- read.table(file = paste(resdir, f, sep = ""), header = TRUE, skip = 1)
  if (nrow(temp) == 0){
    print(paste(f,"has no rows!"))
    next()
  }
  temp$file <- f
  df <- rbind(df, temp)
}

问题是这花费了太长时间;它已经运行了将近24小时,并且添加每个其他文件的速度似乎都变慢了。我通常只将所有文件连接在一起,然后将它们加载,但是重要的是,对于数据帧中的每一行,我还要存储文件名信息。我想知道是否有一种更有效的方法可以用lapply或其他方法来做到这一点?

0 个答案:

没有答案
相关问题