dplyr: как использовать anti_join для поиска непревзойденных записей


Вы можете использовать функцию anti_join() из пакета dplyr в R, чтобы вернуть все строки в одном фрейме данных, которые не имеют совпадающих значений в другом фрейме данных.

Эта функция использует следующий базовый синтаксис:

anti_join(df1, df2, by= 'col_name')

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: Используйте anti_join() с одним столбцом

Предположим, у нас есть следующие два фрейма данных в R:

#create data frames
df1 <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
 points=c(12, 14, 19, 24, 36))

df2 <- data.frame(team=c('A', 'B', 'C', 'F', 'G'),
 points=c(12, 14, 19, 33, 17))

Мы можем использовать функцию anti_join() для возврата всех строк в первом фрейме данных, у которых нет соответствующей команды во втором фрейме данных:

library(dplyr)

#perform anti join using 'team' column
anti_join(df1, df2, by='team')

 team points
1 D 24
2 E 36

Мы видим, что есть ровно две команды из первого фрейма данных, у которых нет совпадающего имени команды во втором фрейме данных.

Пример 2. Использование anti_join() с несколькими столбцами

Предположим, у нас есть следующие два фрейма данных в R:

#create data frames
df1 <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
 position=c('G', 'G', 'F', 'G', 'F', 'C'),
 points=c(12, 14, 19, 24, 36, 41))

df2 <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
 position=c('G', 'G', 'C', 'G', 'F', 'F'),
 points=c(12, 14, 19, 33, 17, 22))

Мы можем использовать функцию anti_join() для возврата всех строк в первом фрейме данных, у которых нет соответствующей команды и позиции во втором фрейме данных:

library(dplyr)

#perform anti join using 'team' and 'position' columns
anti_join(df1, df2, by=c('team', 'position'))

 team position points
1 A F 19
2 B C 41

Мы видим, что есть ровно две записи из первого фрейма данных, которые не имеют совпадающего имени команды и позиции во втором фрейме данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции в dplyr:

Как выбрать столбцы по индексу с помощью dplyr
Как присоединиться к нескольким фреймам данных с помощью dplyr
Как отфильтровать строки, содержащие определенную строку, с помощью dplyr

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.