Поиск необычных строк из двух фреймов данных, каждый из которых содержит несколько неуникальных строк

#r

#r

Вопрос:

Поиск необычных строк из двух фреймов данных, каждый из которых содержит несколько неуникальных строк, каждая из которых сопоставляется один раз. Для получения более подробной информации о проблеме обратитесь к приведенному ниже объяснению изображения и желаемому результату

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

Комментарии:

1. Вам нужно df1[!duplicated(df1),]

Ответ №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()
 

Это просто возвращает строку 1 из df1. Я надеюсь, что это полезно.

Ответ №2:

Мы можем сделать join с data.table

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