假设我有两个数据帧,df1和df2:
chrom pos genSym type
1 4 blah DEL
2 5 guh INS
1 6 poo DEL
2 7 foo MMP
chrom pos genSym type
1 4 blah DEL
3 3 grub INS
1 6 poo INS
2 7 foo MMP
我想以这样的方式组合它们,即包含相同chrom,pos和genSym值的行在同一行上配对(根据需要重复)。如果有任何意义,那么包含未在其他数据框中找到的chrom,pos和genSym值的行将被列为未配对。理想情况下,输出看起来像这样:
chrom pos genSym type chrom pos genSym type
1 4 blah DEL 1 4 blah DEL
2 5 guh INS
1 6 poo DEL 1 6 poo INS
2 7 foo MMP 2 7 foo MMP
3 3 grub INS
R 中的包是否简化了这一点?如果 R 不能轻易做到这一点,是否有人有其他工具的建议?
答案 0 :(得分:3)
获得你想要的东西
merge(df1, df2, by = c("chrom", "pos", "genSym"), all = T)
我也只是作为一种学习经历,试试这个
merge(df, df.other,by=x,all=T)
这是一个很好的参考https://stackoverflow.com/a/1300618/2747709,用于理解外部,左连接,右连接等,并查看sql样式匹配的其他答案。