Вы можете использовать функцию 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