كيفية تصفية الصفوف التي تحتوي على سلسلة معينة باستخدام dplyr


في كثير من الأحيان قد ترغب في تصفية الصفوف في إطار البيانات في R التي تحتوي على سلسلة معينة. لحسن الحظ، من السهل القيام بذلك باستخدام الدالة filter() في الحزمة dplyr والدالة grepl() في Base R.

يوضح هذا البرنامج التعليمي عدة أمثلة للاستخدام العملي لهذه الوظائف باستخدام إطار البيانات التالي:

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12
5 Center 32 11

المثال 1: تصفية الصفوف التي تحتوي على سلسلة معينة

يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تحتوي على سلسلة معينة:

 #load dplyr package
library(dplyr)

#filter rows that contain the string 'Guard' in the player column
df %>% filter ( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

ذات صلة: مقارنة grep() وgrepl() في R: ما الفرق؟

المثال 2: تصفية الصفوف التي تحتوي على سلسلة واحدة على الأقل

يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تحتوي على “Guard” أو “Forward” في عمود المشغل:

 #filter rows that contain 'Guard' or 'Forward' in the player column
df %>% filter ( grepl ('Guard|Forward', player))

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12

يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تحتوي على “P” أو “Center” في عمود القارئ:

 #filter rows that contain 'P' or 'Center' in the player column
df %>% filter ( grepl ('P|Center', player))

     player points rebounds
1 P Guard 12 5
2 P Forward 22 12
3 Center 32 11

المثال 3: تصفية الصفوف التي تحتوي على سلسلة معينة

يوضح التعليمة البرمجية التالية كيفية تصفية (أي إزالة) الصفوف التي تحتوي على “Guard” في عمود المشغل:

 #filter out rows that contain 'Guard' in the player column
df %>% filter (! grepl ('Guard', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12
3 Center 32 11

يوضح التعليمة البرمجية التالية كيفية تصفية (أي إزالة) الصفوف التي تحتوي على “Guard” أو “Center” في عمود المشغل:

 #filter out rows that contain 'Guard' or 'Center' in the player column
df %>% filter (! grepl ('Guard|Center', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12

يمكنك العثور على المزيد من دروس R هنا .

Add a Comment

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