كيفية حذف الصفوف التي تحتوي على أصفار في r (مع مثال)
يمكنك استخدام أي من الطرق التالية لإزالة الصفوف التي تحتوي على أصفار في إطار بيانات في R:
الطريقة الأولى: إزالة الصفوف التي تحتوي على أصفار باستخدام Base R
df_new <- df[apply(df!= 0 , 1 , all),]
الطريقة الثانية: إزالة الصفوف التي تحتوي على أصفار باستخدام dplyr
library (dplyr) df_new <- filter_if(df, is.numeric , all_vars((.) != 0 ))
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:
#create data frame df <- data. frame (points=c(5, 7, 8, 0, 12, 14, 0, 10, 8), assists=c(0, 2, 2, 4, 4, 3, 7, 6, 10), rebounds=c(8, 8, 7, 3, 6, 5, 0, 12, 11)) #view data frame df points assists rebounds 1 5 0 8 2 7 2 8 3 8 2 7 4 0 4 3 5 12 4 6 6 14 3 5 7 0 7 0 8 10 6 12 9 8 10 11
مثال 1: إزالة الصفوف التي تحتوي على أصفار باستخدام Base R
يوضح التعليمة البرمجية التالية كيفية إزالة الصفوف التي تحتوي على أصفار باستخدام الدالة R base application() :
#create new data frame that removes rows with any zeros from original data frame df_new <- df[apply(df!= 0 , 1 , all),] #view new data frame df_new points assists rebounds 2 7 2 8 3 8 2 7 5 12 4 6 6 14 3 5 8 10 6 12 9 8 10 11
لاحظ أنه تمت إزالة الأسطر الثلاثة التي تحتوي على قيم فارغة.
مثال 2: إزالة الصفوف التي تحتوي على أصفار باستخدام dplyr
يوضح التعليمة البرمجية التالية كيفية إزالة الصفوف التي تحتوي على أصفار باستخدام وظيفة filter_if() من حزمة dplyr في R:
#create new data frame that removes rows with any zeros from original data frame df_new <- filter_if(df, is.numeric , all_vars((.) != 0 )) #view new data frame df_new points assists rebounds 1 7 2 8 2 8 2 7 3 12 4 6 4 14 3 5 5 10 6 12 6 8 10 11
لاحظ أنه تمت إزالة الأسطر الثلاثة التي تحتوي على قيم فارغة.
وهذا يتوافق مع النتيجة التي حصلنا عليها باستخدام قاعدة R.
ملاحظة : استخدمنا الدالة is.numeric لتحديد أن جميع المتغيرات الرقمية في إطار البيانات يجب أن تكون غير صفرية.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية إزالة الأسطر الفارغة من إطار البيانات في R
كيفية إزالة الأعمدة ذات قيم NA في R
كيفية إزالة الخطوط المكررة في R