كيفية الإصلاح في 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) طول موجب
كيفية الإصلاح: خطأ في اختيار الوسائط غير المستخدمة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *