如何快速rbind许多(+ 1000)* .rds文件

时间:2016-01-05 05:37:41

标签: r

我有超过2000个* .rds文件是18,000个obs,我想将它们合并为一个data.frame。我知道使用for循环来增长对象并没有效率,但是它已经花了很长时间才进行。有更快的方法吗?

以下是我迄今为止尝试过的几件事:

lapply

mergedat <- do.call(rbind, lapply(list.files("dat/"), readRDS))

for循环:

files <- list.files("dat/")
merged <- data.frame()
for (i in unique(files)){
df <- readRDS(paste0("dat/", i))
merged <- rbind(merged, df)
}

1 个答案:

答案 0 :(得分:2)

你的第一次尝试看起来很接近。稍作修改后,以下内容对我有用

mergedat <- do.call('rbind', lapply(list.files("dat/", full.names = TRUE), readRDS))

我添加的唯一内容是full.names = TRUE