从两个数据帧中查找不常见的行,每个数据帧都有多个非唯一行

时间:2019-04-15 07:39:41

标签: r

从两个数据帧中查找不常见的行,每个数据帧具有多个不唯一的行,每个行匹配一次。有关该问题的更多说明,请参见下图 Explanation and desired result

df1<-data.frame("ID"=c("123","124","123"), "Amt"=c("57365","57365","57365"))
df2<-data.frame("ID"=c("123"), "Amt"=c("57365"))

2 个答案:

答案 0 :(得分:1)

使用dplyr:

library(dplyr)

df1<-data.frame("ID"=c("123","124","123"), "Amt"=c("57365","57365","57365"))
df2<-data.frame("ID"=c("123"), "Amt"=c("57365"))

df3 <- df1 %>%
  inner_join(df2, by="ID") %>%
  distinct()

这仅返回df1的row1。我希望这很有用。

答案 1 :(得分:0)

我们可以用joindata.table

unique(setDT(df1)[df1[df2, .I, on = .(ID)]])
#    ID   Amt
#1: 123 57365
#2: 124 57365