كيفية الإصلاح في r: الوسيطة ليست رقمية ولا منطقية: return na
التحذير الذي قد تواجهه في R هو:
Warning message: In mean.default(df): argument is not numeric or logical: returning NA
يحدث هذا التحذير عند محاولة حساب متوسط كائن في R ليس رقميًا ولا منطقيًا.
يشرح هذا البرنامج التعليمي بالضبط كيفية التعامل مع هذا التحذير عمليًا.
كيفية إعادة إنتاج التحذير
لنفترض أننا أنشأنا إطار البيانات التالي في R:
#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 B 90 28 28
3 C 86 31 24
4 D 88 39 24
5 E 95 34 28
إذا حاولنا حساب متوسط عمود من الأحرف أو إذا حاولنا حساب متوسط إطار البيانات بأكمله، فسنتلقى تحذيرًا:
#attempt to calculate mean of character column
mean(df$team)
Warning message:
In mean.default(df$team): argument is not numeric or logical: returning NA
#attempt to calculate mean of entire data frame
mean(df)
Warning message:
In mean.default(df): argument is not numeric or logical: returning NA
تأخذ الدالة Mean() فقط متجهًا رقميًا كوسيطة، ولهذا السبب نتلقى تحذيرًا في كلا السيناريوهين.
كيفية التعامل مع التحذير
طريقة التعامل مع هذا التحذير هي استخدام الدالة Mean() فقط مع المتجهات الرقمية.
على سبيل المثال، يمكننا حساب متوسط عمود النقاط لأنه رقمي:
#calculate mean of points column
mean(df$points)
[1] 91.6
أو يمكننا استخدام الدالة sapply() لحساب متوسط كل عمود في إطار البيانات:
#calculate mean of every column in data frame
sapply(df, mean, 2)
team points assists rebounds
NA 90 33 28
Warning message:
In mean.default(X[[i]], ...):
argument is not numeric or logical: returning NA
نحن قادرون على حساب متوسط كل عمود رقمي، ولكن لا نزال نتلقى رسالة تحذير نظرًا لأننا حاولنا حساب متوسط عمود الأحرف “الفريق”.
لتجنب هذا التحذير تمامًا، يمكننا استخدام الدالة sapply() مع الأعمدة الرقمية الثلاثة فقط:
#calculate mean of each numeric column
sapply(df[c(' points ', ' assists ', ' rebounds ')], mean, 2)
points assists rebounds
90 33 28
لاحظ أنه يتم عرض متوسط كل عمود رقمي بنجاح ولا نتلقى أي رسائل تحذيرية.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح: الشرط له طول > 1 وسيتم استخدام العنصر الأول فقط
كيفية الإصلاح: الوسيطة غير الرقمية للمشغل الثنائي
كيفية الإصلاح: يجب أن يكون لـ dim(X) طول موجب
كيفية الإصلاح: خطأ في اختيار الوسائط غير المستخدمة