我已将3个不同文件中的数据读入3个不同的数据帧。我尝试过合并功能,但似乎没有给我所需的输出。 我的数据框是:
DF1:
someName someMOD someID
A T754(P),M691(O),S692(P),S694(P),S739(P),S740(P),S759(P),S762(P) 1
B S495(P) 2
C S162(P),Q159(D) 3
D S45(P),C47(C),S48(P),S26(P) 4
E S18(P) 5
DF2:
someName someMOD someID
C S162(P),Q159(D) 3
D S45(P),C47(C),S48(P),S26(P) 4
F S182(P) 6
E S18(P) 5
Z Q100(P) 9
A T754(P),M691(O),S694(P),S739(P),S740(P) 1
DF3:
someName someMOD someID
A T754(P),M691(O),S692(P),S694(P),S739(P),S740(P),S759(P) 1
B S495(P) 2
D S45(P),C47(C),S48(P),S26(P) 4
E S18(P) 5
F S182(P) 6
L Z182(P) 8
C S162(P),Q159(D) 3
我想要一个像someID列合并的输出,如下所示:
非常感谢任何帮助。谢谢。
答案 0 :(得分:3)
使用Reduce
将多个数据框合并在一起。关于Reduce
的一个令人烦恼的事情是,它将底层函数正好传递了2个参数,因此你必须解决这个问题。
mymerge <- function(x, y)
merge(x, y, by=c("someName", "someID"), all=TRUE))
Reduce(mymerge, list(df1, df2, df3))
答案 1 :(得分:2)
库(data.table)
dt1 <- data.table(df1, key="someName,someID")
dt2 <- data.table(df2, key="someName,someID")
dt3 <- data.table(df3, key="someName,someID")
DT <- dt1[dt2[dt3]]
答案 2 :(得分:0)
您是否尝试过此功能:
http://rss.acs.unt.edu/Rdoc/library/gtools/html/smartbind.html
请参阅链接中的以下代码:
out <- smartbind( list(df1, df2, ...))