Як об’єднати кадри даних у кількох стовпцях за допомогою 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