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