Як зробити ліве з’єднання в 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, щоб виконати об’єднання зліва, використовуючи стовпець «team» як стовпець для приєднання:

 #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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *