Как выполнить левое соединение в 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 '),
                  dots=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 rebound assists
1 Mavs 25 19
2 Hawks 32 18
3 Spurs 38 22
4 Nets 30 25

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

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

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

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

 library (dplyr)

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

   team points rebound 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

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

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