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'),
                  dots=c(12, 14, 19, 24, 36))

df2 <- data. frame (team=c('A', 'B', 'C', 'F', 'G'),
                  dots=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'),
                  dots=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'),
                  dots=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 FY 19
2 BC 41

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *