كيفية القيام بربط داخلي في r (مع أمثلة)
هناك طريقتان شائعتان لإجراء صلة داخلية في R:
الطريقة الأولى: استخدم Base R
merge(df1, df2, by=' column_to_join_on ')
الطريقة الثانية: استخدم dplyr
library (dplyr) inner_join(df1, df2, by=' column_to_join_on ')
ستنتج كلتا الطريقتين نفس النتيجة، لكن طريقة dplyr ستميل إلى الأداء بشكل أسرع على مجموعات البيانات الكبيرة للغاية.
توضح الأمثلة التالية كيفية استخدام كل من هذه الوظائف عمليًا مع إطارات البيانات التالية:
#define first data frame df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) df1 team points 1 to 18 2 B 22 3 C 19 4 D 14 5 E 14 6 F 11 7 G 20 8:28 a.m. #define second data frame df2 = data. frame (team=c('A', 'B', 'C', 'D', 'G', 'H'), assists=c(4, 9, 14, 13, 10, 8)) df2 team assists 1 to 4 2 B 9 3 C 14 4 D 13 5G 10 6:8 a.m.
مثال 1: الانضمام الداخلي باستخدام Base R
يمكننا استخدام الدالة merge() في قاعدة R لإجراء صلة داخلية، باستخدام عمود “الفريق” كعمود للانضمام إليه:
#perform inner join using base R df3 <- merge(df1, df2, by=' team ') #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 G 20 10 6:28 a.m. 8
لاحظ أنه يتم الاحتفاظ فقط بالفرق التي ظهرت في مجموعتي البيانات في مجموعة البيانات النهائية.
مثال 2: الانضمام الداخلي باستخدام dplyr
يمكننا استخدام الدالة الداخلية_الانضمام () من الحزمة dplyr لإجراء صلة داخلية، باستخدام عمود “الفريق” كعمود للانضمام:
library (dplyr) #perform inner join using dplyr df3 <- inner_join(df1, df2, by=' team ') #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 G 20 10 6:28 a.m. 8
لاحظ أن هذا يتوافق مع النتيجة التي حصلنا عليها باستخدام الدالة merge() في الأساس R.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في R:
كيفية القيام بالانضمام الأيسر في R
كيفية القيام بالانضمام الصحيح في R
كيفية إضافة عمود إلى إطار البيانات في R
كيفية إزالة الأعمدة من إطار البيانات في R