كيفية استخدام عامل التصفية الشرطي في dplyr


يمكنك استخدام بناء الجملة الأساسي التالي لتطبيق مرشح شرطي على إطار بيانات باستخدام الوظائف الموجودة في حزمة dplyr في R:

 library (dplyr)

#filter data frame where points is greater than some value (based on team)
df %>% 
  filter(case_when(team==' A ' ~ points > 15,
                   team==' B ' ~ points > 20,
                   TRUE ~ points > 30))

يقوم هذا المثال تحديدًا بتصفية الصفوف في إطار بيانات حيث تكون قيمة عمود النقاط أكبر من قيمة معينة، بشرط قيمة عمود الفريق .

ذات صلة: مقدمة إلى case_when() في dplyr

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: كيفية استخدام الفلتر الشرطي في dplyr

لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 points=c(10, 12, 17, 18, 24, 29, 29, 34, 35))

#view data frame
df

  team points
1 to 10
2 to 12
3 to 17
4 B 18
5 B 24
6 B 29
7 C 29
8 C 34
9 C 35

لنفترض الآن أننا نريد تطبيق الفلتر الشرطي التالي:

  • احتفظ فقط بخطوط لاعبي الفريق “أ” الذين تزيد نقاطهم عن 15.
  • احتفظ فقط بالخطوط للاعبي الفريق B حيث تكون النقاط أكبر من 20.
  • احتفظ فقط بالخطوط للاعبي الفريق C حيث تزيد النقاط عن 30.

يمكننا استخدام الدالتين filter() و case_when() من الحزمة dplyr لتطبيق هذا المرشح الشرطي على إطار البيانات:

 library (dplyr)

#filter data frame where points is greater than some value (based on team)
df %>% 
  filter(case_when(team==' A ' ~ points > 15,
                   team==' B ' ~ points > 20,
                   TRUE ~ points > 30))

  team points
1 to 17
2 B 24
3 B 29
4 C 34
5 C 35

تتم الآن تصفية الصفوف الموجودة في إطار البيانات حيث تكون القيمة الموجودة في عمود النقاط أكبر من قيمة معينة، بشرط القيمة الموجودة في عمود الفريق .

ملاحظة رقم 1 : في الدالة case_when() ، نستخدم TRUE في الوسيطة الأخيرة لتمثيل جميع القيم في عمود الفريق التي لا تساوي “A” أو “B”.

ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لوظيفة dplyr case_when() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى في dplyr:

كيفية التصفية حسب رقم الصف باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr
كيفية استخدام مرشح “غير مضمن” في dplyr

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *