كيفية تصفية الصفوف التي تحتوي على سلسلة معينة باستخدام 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 هنا .