Как сделать внутреннее соединение в R (с примерами)


Существует два распространенных способа выполнения внутреннего соединения в R:

Метод 1: используйте базу R

merge(df1, df2, by='column_to_join_on')

Способ 2: используйте dplyr

library(dplyr)

inner_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 A 18
2 B 22
3 C 19
4 D 14
5 E 14
6 F 11
7 G 20
8 H 28

#define second data frame
df2 = data.frame(team=c('A', 'B', 'C', 'D', 'G', 'H'),
 assists=c(4, 9, 14, 13, 10, 8))

df2

 team assists
1 A 4
2 B 9
3 C 14
4 D 13
5 G 10
6 H 8

Пример 1: внутреннее соединение с использованием базы R

Мы можем использовать функцию merge() в базе R для выполнения внутреннего соединения, используя столбец «команда» в качестве столбца для объединения:

#perform inner join using base R
df3 <- merge(df1, df2, by='team')

#view result
df3

 team points assists
1 A 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 G 20 10
6 H 28 8

Обратите внимание, что только команды, которые были в обоих наборах данных, сохраняются в окончательном наборе данных.

Пример 2: внутреннее соединение с использованием dplyr

Мы можем использовать функцию inner_join() из пакета dplyr для выполнения внутреннего соединения, используя столбец «команда» в качестве столбца для объединения:

library(dplyr)

#perform inner join using dplyr 
df3 <- inner_join(df1, df2, by='team')

#view result
df3

 team points assists
1 A 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 G 20 10
6 H 28 8

Обратите внимание, что это соответствует результату, полученному нами при использовании функции merge() в базе R.

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

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

Как сделать левое соединение в R
Как сделать правильное соединение в R
Как добавить столбец во фрейм данных в R
Как удалить столбцы из фрейма данных в R

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