Dplyr: كيفية استخدام anti_join للعثور على السجلات غير المتطابقة
يمكنك استخدام وظيفة anti_join() من حزمة dplyr في R لإرجاع جميع الصفوف في إطار بيانات لا تحتوي على قيم مطابقة في إطار بيانات آخر.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
anti_join(df1, df2, by= ' col_name ')
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.
مثال 1: استخدم anti_join() مع عمود
لنفترض أن لدينا إطاري البيانات التاليين في R:
#create data frames df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), dots=c(12, 14, 19, 24, 36)) df2 <- data. frame (team=c('A', 'B', 'C', 'F', 'G'), dots=c(12, 14, 19, 33, 17))
يمكننا استخدام الدالة anti_join() لإرجاع جميع الصفوف في إطار البيانات الأول التي لا تحتوي على فريق مطابق في إطار البيانات الثاني:
library (dplyr) #perform anti join using 'team' column anti_join(df1, df2, by=' team ') team points 1 D 24 2 E 36
يمكننا أن نرى أن هناك فريقين بالضبط من إطار البيانات الأول ليس لهما اسم فريق مطابق في إطار البيانات الثاني.
مثال 2: استخدم anti_join() مع أعمدة متعددة
لنفترض أن لدينا إطاري البيانات التاليين في R:
#create data frames df1 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'G', 'F', 'C'), dots=c(12, 14, 19, 24, 36, 41)) df2 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'), position=c('G', 'G', 'C', 'G', 'F', 'F'), dots=c(12, 14, 19, 33, 17, 22))
يمكننا استخدام الدالة anti_join() لإرجاع جميع الصفوف في إطار البيانات الأول التي لا تحتوي على فريق مطابق وموضع في إطار البيانات الثاني:
library (dplyr) #perform anti join using 'team' and 'position' columns anti_join(df1, df2, by=c(' team ', ' position ')) team position points 1 FY 19 2 BC 41
يمكننا أن نرى أن هناك سجلين بالضبط من إطار البيانات الأول ليس لهما اسم فريق مطابق وموقعه في إطار البيانات الثاني.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى في dplyr:
كيفية تحديد الأعمدة حسب الفهرس باستخدام dplyr
كيفية الانضمام إلى إطارات بيانات متعددة باستخدام dplyr
كيفية تصفية الصفوف التي تحتوي على سلسلة معينة باستخدام dplyr