当隐含ID列时,合并来自csv文件的许多数据帧?

我想把一堆数据框合并在一起(因为如果你只处理w / one,似乎很多操作都会更容易,但如果我错了就纠正我)。 目前我有一个这样的数据框:
ID, var1, var2
A,  2,    2
B,  4,    5
.
.
Z,  3,    2
每个ID都在一行上,有几次单次测量 我还有一个csv文件w /重复测量每个ID,如: filename = ID_B.csv
time, var4, var5
0,    1,    2
1,    4,    5
2,    1,    6
...
我想要的是:
ID, time, va1, var2, var4, var5
...
B,  0,    4,   5,    1,    2,
B,  1,    4,   5,    4,    5,
B,  2,    4,   5,    1,    6,
...
我真的不关心列顺序。我能想到的唯一解决方案是将ID列添加到每个csv文件,然后循环调用它们多次调用
merge()
。有更优雅的方法吗?     
已邀请:
我的理解是你需要从文件名中提取ID,然后将导入的csv与现有的数据帧合并。
df1 <- read.csv(textConnection("ID, var1, var2
A,  2,    2
B,  4,    5"))

# assuming the imported csv-files are in working directory
filenames <- list.files(getwd(), pattern = "ID_[A-Z].csv")

# extract ID from filename
ids <- gsub("ID_([A-Z]).csv", "\1", filenames)

# import csv-files and append ID
library(plyr)
import <- mdply(filenames, read.csv)
import$ID <- ids[import$Var1]
import$Var1 <- NULL

# merge imported csv-files and the existing dataframe
merge(df1, import)  
结果:
ID var1 var2 time var4 var5
1  B    4    5    0    1    2
2  B    4    5    1    4    5
3  B    4    5    2    1    6
    

要回复问题请先登录注册