从一个数据集中删除存在于另一个数据集中的行

时间:2015-08-26 14:43:48

标签: r dplyr

我试过了:

Final <- OriginalNew[!(OriginalNew$Email %in% Reports$Email),]

它给了我一个错误:

  

$运算符对原子向量无效。

然后我尝试了:

Final <- OriginalNew[!(OriginalNew[["Email"]] %in% Reports[["Email"]]),]

Final <- OriginalNew[!(getElement(OriginalNew, "Email") %in% getElement(Reports, "Email")),]

这两个都给我一个错误:

  

下标越界

2 个答案:

答案 0 :(得分:0)

您可以使用merge

示例:

a<-data.frame(1:50)
names(a) <- c("id")

b<-data.frame(1:20)
names(b)<- c("id")
b$fk<-31:50

merge(a,b,by.x=c("id"), by.y=c("fk"))

答案 1 :(得分:0)

@ user2673238您的解决方案看起来不错。但是,我使用anti_join中的dplyr解决了问题。

final <- dplyr::anti_join(OriginalNew, Reports, by = "Email")