كيفية الانضمام إلى إطارات البيانات عبر أعمدة متعددة باستخدام 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