我有超过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)
}
答案 0 :(得分:2)
你的第一次尝试看起来很接近。稍作修改后,以下内容对我有用
mergedat <- do.call('rbind', lapply(list.files("dat/", full.names = TRUE), readRDS))
我添加的唯一内容是full.names = TRUE
。