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