كيفية الإصلاح في r: القيمة المفقودة حيث تكون هناك حاجة إلى صواب/خطأ
الخطأ الذي قد تواجهه في R هو:
Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
يحدث هذا الخطأ عند مقارنة قيمة بـ NA في عبارة if في R باستخدام بناء الجملة x == NA .
تتوقع عبارة if قيمة TRUE أو FALSE، لذا يجب عليك استخدام is.na(x) بدلاً من ذلك لأن هذه الدالة تُرجع دائمًا TRUE أو FALSE.
كيفية إعادة إنتاج الخطأ
لنفترض أننا نحاول تكرار قائمة القيم في المتجه في R وطباعة كلمة “مفقود” في كل مرة توجد فيها قيمة NA في المتجه:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (x[i] == NA) { print(' Missing ') } } Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
لقد تلقينا خطأ لأننا استخدمنا الصيغة x[i] == NA .
كيفية اصلاح الخطأ
نحن بحاجة إلى تغيير بناء الجملة إلى is.na(x) على النحو التالي:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (is. na (x[i])) { print(' Missing ') } } [1] “Missing” [1] “Missing”
لاحظ أننا لا نتلقى خطأ ويمكننا طباعة كلمة “مفقود” عندما نواجه قيمة NA في المتجه.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح: زمالة المدمنين المجهولين المقدمة عن طريق الإكراه
كيفية الإصلاح: عدد غير صحيح من المؤشرات على المصفوفة
كيفية الإصلاح: عدد العناصر المطلوب استبدالها ليس مضاعفًا لطول الاستبدال