R中的合并函数

时间:2014-02-12 21:08:07

标签: r merge

我在R中使用merge()函数。我想合并两个数据帧。但是,我对不合并的观察感兴趣。有没有办法生成输出,显示未成功合并的观察结果?

示例:DataframeA = 1138888 obs          DataframeB = 1010651 obs 我想看看DataFrame中包含的DataframeB中没有包含哪些obs。

我已阅读merge()文档并查看了all.x,all.y命令。但是,我真的想要一个新的数据框来表示那些不会合并的观察结果。

感谢您提前寻求帮助。

1 个答案:

答案 0 :(得分:1)

不知道以下解决方案的计算效果如何,但它有效 与subset()

df.a<-data.frame(key=sample(1:100,50),"a")
df.b<-data.frame(key=sample(1:100,50),"b")
db.bNOTa<-subset(df.b,!(df.b$key %in% df.a$key))

编辑: 使用match的另一个解决方案是:

db.bNOTa<-merge(df.b,df.a,all.x=TRUE)
db.bNOTa<-subset(db.bNOTa,!is.na(db.bNOTa[,3]))

在MySQL中,这将是一个左连接,如下所示: SQL JOIN To Find Records That Don't Have a Matching Record With a Specific Value