كيفية القيام بالانضمام إلى اليسار في 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 لإجراء صلة يسارية، باستخدام عمود “الفريق” كعمود للانضمام إليه:
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
أحد الاختلافات التي ستلاحظها بين هاتين الوظيفتين هو أن وظيفة الدمج () تقوم تلقائيًا بفرز الصفوف أبجديًا بناءً على العمود الذي استخدمته لإجراء الربط.
وعلى العكس من ذلك، تحافظ الدالة left_join() على الترتيب الأصلي للصفوف في إطار البيانات الأول.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في R:
كيفية القيام بصلة داخلية في R
كيفية إجراء مطابقة غامضة في R
كيفية إضافة عمود إلى إطار البيانات في R
كيفية إزالة الأعمدة من إطار البيانات في R