Есть два распространенных способа выполнить правое соединение в 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