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


Вы можете использовать функцию merge() для выполнения левого соединения в базе R:

#left join using base R
merge(df1,df2, all. x = TRUE )

Вы также можете использовать функцию left_join() из пакета dplyr для выполнения левого соединения:

#left join using dplyr
dplyr::left_join(df2, df1)

Примечание. Если вы работаете с очень большими наборами данных, функция left_join() будет работать быстрее, чем функция merge() .

В следующих примерах показано, как использовать каждую из этих функций на практике со следующими фреймами данных:

#define first data frame
df1 <- data.frame(team=c('Mavs', 'Hawks', 'Spurs', 'Nets'),
 points=c(99, 93, 96, 104))

df1

 team points
1 Mavs 99
2 Hawks 93
3 Spurs 96
4 Nets 104

#define second data frame
df2 <- data.frame(team=c('Mavs', 'Hawks', 'Spurs', 'Nets'),
 rebounds=c(25, 32, 38, 30),
 assists=c(19, 18, 22, 25))

df2

 team rebounds assists
1 Mavs 25 19
2 Hawks 32 18
3 Spurs 38 22
4 Nets 30 25

Пример 1: левое соединение с использованием основания R

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

#perform left join using base R
merge(df1, df2, by='team', all. x = TRUE )

 team points rebounds assists
1 Hawks 93 32 18
2 Mavs 99 25 19
3 Nets 104 30 25
4 Spurs 96 38 22

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

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

library(dplyr)

#perform left join using dplyr 
left_join(df1, df2, by='team')

 team points rebounds assists
1 Mavs 99 25 19
2 Hawks 93 32 18
3 Spurs 96 38 22
4 Nets 104 30 25

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

И наоборот, функция left_join() сохраняет исходный порядок строк из первого фрейма данных.

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

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

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

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