كيفية استخدام select_if مع شروط متعددة في dplyr
يمكنك استخدام بناء الجملة الأساسي التالي مع وظيفة Select_if() الخاصة بحزمة dplyr لتحديد أعمدة في إطار بيانات يلبي أحد الشروط العديدة:
df %>% select_if( function (x) condition1 | condition2)
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.
مثال 1: استخدم Select_if() مع أنواع الفئات
يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة Select_if() لتحديد الأعمدة في إطار البيانات التي تحتوي على نوع فئة حرف أو رقمي :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
لاحظ أنه يتم إرجاع العمود المكون من حرف واحد ( الفريق ) والعمودين الرقميين ( points_for و points_against ) بينما لا يتم إرجاع عمود العوامل ( المؤتمر ).
المثال 2: استخدم الدالة Select_if() مع أنواع الفئات وأسماء الأعمدة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة Select_if() لتحديد الأعمدة في إطار البيانات التي تحتوي على نوع فئة عامل أو اسم عمود Points_for :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
لاحظ أنه يتم إرجاع العمود المكون من عامل واحد والعمود المسمى Points_for .
ملاحظة : | الرمز هو عامل التشغيل المنطقي “OR” في R. لا تتردد في استخدام أكبر عدد ممكن من | الرموز لأنك تريد تحديد الأعمدة باستخدام أكثر من شرطين.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية استخدام الوظائف الشائعة الأخرى في dplyr:
كيفية استخدام الدالة عبر () في dplyr
كيفية استخدام وظيفة relocate() في dplyr
كيفية استخدام وظيفة الشريحة () في dplyr