Как выполнить внешнее соединение в r (с примерами)
Существует два распространенных способа выполнения внешнего соединения в R:
Метод 1: используйте базу R
merge(df1, df2, by=' column_to_join_on ', all= TRUE )
Способ 2: используйте dplyr
library (dplyr) full_join(df1, df2, by=' column_to_join_on ')
Каждый метод вернет все строки из обеих таблиц.
Оба метода дадут одинаковый результат, но метод dplyr будет работать быстрее на чрезвычайно больших наборах данных.
Следующие примеры показывают, как использовать каждую из этих функций на практике со следующими фреймами данных:
#define first data frame df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) df1 team points 1 to 18 2 B 22 3 C 19 4 D 14 5 E 14 6 F 11 7 G 20 8:28 a.m. #define second data frame df2 = data. frame (team=c('A', 'B', 'C', 'D', 'L', 'M'), assists=c(4, 9, 14, 13, 10, 8)) df2 team assists 1 to 4 2 B 9 3 C 14 4 D 13 5 L 10 6 M 8
Пример 1. Внешнее соединение с использованием Base R
Мы можем использовать функцию merge() в базе R для выполнения внешнего соединения, используя столбец «team» в качестве столбца для соединения:
#perform outer join using base R df3 <- merge(df1, df2, by=' team ', all= TRUE ) #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 E 14 NA 6 F 11 NA 7 G 20 NA 8:28 AM NA 9L NA 10 10M NA 8
Обратите внимание, что возвращаются все строки в обоих кадрах данных.
Пример 2. Внешнее соединение с использованием dplyr
Мы можем использовать функцию full_join() из пакета dplyr для выполнения внешнего соединения, используя столбец «team» в качестве столбца для соединения:
library (dplyr) #perform outer join using dplyr df3 <- full_join(df1, df2, by=' team ') #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 E 14 NA 6 F 11 NA 7 G 20 NA 8:28 AM NA 9L NA 10 10M NA 8
Обратите внимание, что это соответствует результату, который мы получили с помощью функции merge() в базе R.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как сделать левое соединение в R
Как сделать правильное соединение в R
Как сделать внутреннее соединение в R