كيفية تصفية data.table في r (مع أمثلة)
يمكنك استخدام الطرق التالية لتصفية الصفوف من data.table في R:
الطريقة الأولى: تصفية الصفوف بناءً على شرط واحد
dt[col1 == ' A ', ]
الطريقة الثانية: تصفية الصفوف التي تحتوي على قيمة في القائمة
dt[col1 %in% c(' A ', ' C '), ]
الطريقة الثالثة: تصفية الصفوف التي يتم استيفاء أحد الشروط المتعددة لها
dt[col1 == ' A ' | col2 < 10 , ]
الطريقة الرابعة: تصفية الصفوف التي يتم استيفاء شروط متعددة فيها
dt[col1 == ' A ' & col2 < 10 , ]
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع data.table التالي في R:
library (data.table)
#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data table
dt
team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28
مثال 1: تصفية الصفوف بناءً على شرط ما
يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تساوي قيمتها في عمود الفريق “A” فقط:
#filter for rows where team is A dt[team == ' A ', ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24
المثال 2: تصفية الصفوف التي تحتوي على قيمة في القائمة
يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تساوي قيمتها في عمود الفريق “A” أو “C” فقط:
#filter for rows where team is A or C dt[team %in% c(' A ', ' C '), ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24 4: C 95 34 28
ذات صلة: كيفية استخدام عامل التشغيل %in% في R (مع أمثلة)
مثال 3: تصفية الصفوف التي يتم استيفاء أحد الشروط العديدة لها
يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف التي تكون قيمتها في عمود الفريق تساوي “A” أو تكون قيمتها في عمود النقاط أقل من 90:
#filter for rows where team is A or points < 90 dt[team == ' A ' | points < 90 , ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24 4: B 88 39 24
ملاحظة : | المشغل يعني “OR” في R.
المثال 4: تصفية الصفوف التي يتم استيفاء شروط متعددة فيها
يوضح التعليمة البرمجية التالية كيفية تصفية الصفوف فقط حيث تكون القيمة في عمود الفريق تساوي “A” وتكون القيمة في عمود النقاط أقل من 90:
#filter for rows where team is A and points < 90 dt[team == ' A ' & points < 90 , ] team points assists rebounds 1: A 86 31 24
ملحوظة : عامل التشغيل & يعني “AND” في R.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تصفية ناقل في R
كيفية حذف الأسطر ذات الأصفار في R
كيفية إزالة الأسطر الفارغة من إطار البيانات في R