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


Есть два распространенных способа выполнить правое соединение в R:

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

merge(df1, df2, by='column_to_join_on', all. y = TRUE )

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

library(dplyr)

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

Оба метода вернут все строки из df2 и любые строки с соответствующими ключами из df1 .

Также стоит отметить, что оба метода дадут одинаковый результат, но метод 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', 'L', 'M'),
 assists=c(4, 9, 14, 13, 10, 8))

df2

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

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

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

#perform right join using base R
df3 <- merge(df1, df2, by='team', all. y = TRUE )

#view result
df3

 team points assists
1 A 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 L NA 10
6 M NA 8

Обратите внимание, что все строки из df2 были включены в окончательный фрейм данных, но только строки из df1 с совпадающим названием команды были включены в окончательный фрейм данных.

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

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

library(dplyr)

#perform right join using dplyr 
df3 <- right_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 L NA 10
6 M NA 8

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

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

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

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

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