كيفية الإصلاح في r: القيم المفقودة غير مسموح بها في المهام المشتركة
رسالة الخطأ التي قد تواجهها عند استخدام R هي:
Error in `[<-.data.frame`(`*tmp*`, df$A == 5, , value = list(A = c(NA, : missing values are not allowed in subscripted assignments of data frames
يحدث هذا الخطأ عادة عند محاولة تعيين قيم في عمود واحد باستخدام قيم من عمود آخر، ولكن قيم NA موجودة.
يوضح المثال التالي كيفية حل هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أننا أنشأنا إطار البيانات التالي في R:
#create data frame
df <- data. frame (A=c(3, 4, 4, NA, 5, 8, 5, 9),
B=c(12, 13, 7, 7, 12, 11, 15, 7))
#view data frame
df
AB
1 3 12
2 4 13
3 4 7
4 NA 7
5 5 12
6 8 11
7 5 15
8 9 7
لنفترض الآن أننا نحاول تعيين قيمة 10 لكل صف في العمود B حيث القيمة المقابلة في العمود A هي 5:
#attempt to assign column B a value of 10 where A is equal to 5
df[df$A == 5, ]$B <- 10
Error in `[<-.data.frame`(`*tmp*`, df$A == 5, , value = list(A = c(NA, :
missing values are not allowed in subscripted assignments of data frames
نتلقى خطأً نظرًا لوجود قيم NA في العمود A وتخبرنا رسالة الخطأ صراحةً أن القيم المفقودة غير مسموح بها في التعيينات المنخفضة لإطارات البيانات .
كيفية تجنب الخطأ
هناك طريقتان لتجنب هذا الخطأ.
1. استخدم عامل التشغيل %in%
إحدى الطرق لتجنب هذا الخطأ هي استخدام عامل التشغيل %in% عند تنفيذ المهمة:
#assign column B a value of 10 where A is equal to 5 df[df$A %in% 5,]$B <- 10 #view updated data frame df AB 1 3 12 2 4 13 3 4 7 4 NA 7 5 5 10 6 8 11 7 5 10 8 9 7
لاحظ أنه تم تعيين قيمة 10 لكل صف في العمود B حيث القيمة المقابلة في العمود A هي 5 ولا نتلقى أي أخطاء.
2. استخدم is.na()
هناك طريقة أخرى لتجنب هذا الخطأ وهي استخدام الدالة is.na() عند تنفيذ المهمة:
#assign column B a value of 10 where A is equal to 5
df[!is. na (df$A) & df$A == 5, ]$B <- 10
#view updated data frame
df
AB
1 3 12
2 4 13
3 4 7
4 NA 7
5 5 10
6 8 11
7 5 10
8 9 7
مرة أخرى، يمكننا تعيين قيمة 10 لكل صف في العمود B حيث القيمة المقابلة في العمود A هي 5 ولا نتلقى أي أخطاء.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: تتضمن الوسائط عددًا مختلفًا من الأسطر
كيفية الإصلاح في R: خطأ في اختيار الوسائط غير المستخدمة
كيفية الإصلاح في R: الاستبدال له طول صفر