Як об’єднати кадри даних у кількох стовпцях за допомогою dplyr


Ви можете використовувати наступний базовий синтаксис для об’єднання кадрів даних у R на основі кількох стовпців за допомогою dplyr:

 library (dplyr)

left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))

Цей конкретний синтаксис виконає ліве об’єднання, якщо виконуються такі умови:

  • Значення в стовпці x1 df1 відповідає значенню в стовпці x2 df2.
  • Значення стовпця y1 df1 відповідає значенню стовпця y2 df2.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: об’єднайте кілька стовпців за допомогою dplyr

Припустимо, ми маємо наступні два кадри даних у R:

 #define first data frame
df1 = data. frame (team=c('A', 'A', 'B', 'B'),
                 pos=c('G', 'F', 'F', 'G'),
                 dots=c(18, 22, 19, 14))

df1

  team pos points
1 AG 18
2 AF 22
3 BF 19
4 BG 14

#define second data frame
df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'),
                 position=c('G', 'F', 'F', 'G', 'F'),
                 assists=c(4, 9, 8, 6, 5))

df2

  team_name position assists
1 GA 4
2 AF 9
3 BF 8
4 CG 6
5 CF 5

Ми можемо використати наступний синтаксис у dplyr для виконання лівого об’єднання на основі двох стовпців:

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position '))

#view result
df3

  team pos points assists
1 AG 18 4
2 AF 22 9
3 BF 19 8
4 BG 14 NA

Отриманий кадр даних містить усі рядки з df1 і лише рядки з df2 , де значення команди та позиції збігаються.

Також зауважте, що якщо обидва кадри даних мають однакові імена стовпців, ви можете просто використати такий синтаксис, щоб об’єднати кілька стовпців:

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team ', ' position '))

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в R:

Як зробити об’єднання зліва в R
Як зробити правильне об’єднання в R
Як зробити внутрішнє об’єднання в R
Як зробити зовнішнє об’єднання в R

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

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