R查找最大化交集

时间:2016-09-05 21:06:49

标签: r merge match intersection

我在同一个人身上收集了几层数据(a,b,c等),但每个人的ID都有两种类型,这些ID可以在数据集之间有所不同。 我需要通过ID,ID1或ID2的任何类型合并这些数据集,以匹配最大记录数。

a_ID1=c("rs1", "rs2", "rs10", "rs35")
a_ID2=c("zzz", "xxx", "fff", "aaa")
df1 = data.frame(ID1=a_ID1, ID2=a_ID2, x=c(1,2,3,4))

b_ID1=c("rs1", "rs2", "rs10", "rs35")
b_ID2=c("ttt", "yyy", "eee", "aaa")
df2 = data.frame(ID1=b_ID1, ID2=b_ID2, x=c(7,8,9,10))

c_ID1=c("rs3", "rs5", "rs6", "rs444")
c_ID2=c("zzz", "xxx", "eee", "www")
df3 = data.frame(ID1=c_ID1, ID2=c_ID2, x=c(40,41,42,43))

这是我想要达到的目标,但我事先并不知道哪种ID组合会匹配最多的记录......

merge(df3, merge(df1, df2, by="ID1"), by.x="ID2", by.y="ID2.x")

我可以测试每个数据框“ID1ID2的每个组合,以首先找到具有最大相交的组合,然后合并每个成对数据,但是有更有效的方法这样做?

非常感谢任何想法!

0 个答案:

没有答案