Как выполнить правильное соединение в 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 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 для выполнения правого соединения, используя столбец «команда» в качестве столбца для соединения:

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

#view result
df3

  team points assists
1 to 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 для выполнения правого соединения, используя столбец «team» в качестве столбца для соединения:

 library (dplyr)

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *