كيفية الإصلاح في r: الوسيطة غير الرقمية للمشغل الثنائي


الخطأ الذي قد تواجهه في R هو:

 Error in df$var1- df$var2: non-numeric argument to binary operator 

يحدث هذا الخطأ عند محاولة تنفيذ عملية ثنائية على متجهين وأحد المتجهات ليس رقميًا.

فيما يلي أمثلة على العمليات الثنائية:

  • الطرح ( )
  • إضافة ( + )
  • الضرب ( * )
  • القسم ( / )

يحدث هذا الخطأ غالبًا عندما يكون أحد المتجهات التي تقدمها هو ناقل الأحرف.

يشرح هذا البرنامج التعليمي بالضبط كيفية إصلاح هذا الخطأ.

كيفية إعادة إنتاج الخطأ

لنفترض أن لدينا إطار البيانات التالي في R:

 #create data frame
df <- data. frame (period = c(1, 2, 3, 4, 5, 6, 7, 8),
                 sales = c(14, 13, 10, 11, 19, 9, 8, 7),
                 returns = c('1', '0', '2', '1', '1', '2', '2', '3'))

#view data frame
df

  period sales returns
1 1 14 1
2 2 13 0
3 3 10 2
4 4 11 1
5 5 19 1
6 6 9 2
7 7 8 2
8 8 7 3

لنفترض الآن أننا نحاول إنشاء عمود جديد يسمى “الصافي” عن طريق طرح عمود “المرتجعات” من عمود “المبيعات”:

 #attempt to create new column called 'net'
df$net <- df$sales - df$returns

Error in df$sales * df$returns: non-numeric argument to binary operator

يحدث خطأ لأن العمود “المرتجعات” ينتمي إلى فئة “الحرف” ولا يمكن طرح عمود حرف من عمود رقمي.

 #display class of 'sales' column
class(df$sales)

[1] "digital"

#display class of 'returns' column
class(df$returns)

[1] “character”

كيفية اصلاح الخطأ

طريقة إصلاح هذا الخطأ هي استخدام as.numeric() لتحويل عمود “الإرجاعات” إلى عمود رقمي قبل إجراء عملية الطرح:

 #create new column called 'net'
df$net <- df$sales - as. numeric (df$returns)

#view updated data frame
df

  period sales returns net
1 1 14 1 13
2 2 13 0 13
3 3 10 2 8
4 4 11 1 10
5 5 19 1 18
6 6 9 2 7
7 7 8 2 6
8 8 7 3 4

نحن قادرون على إجراء عملية الطرح دون أي أخطاء لأن أعمدة “المبيعات” و”المرتجعات” كانت رقمية.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية حل الأخطاء الشائعة الأخرى في R:

كيفية الإصلاح في R: dim(X) يجب أن يكون له طول موجب
كيفية الإصلاح في R: الأسماء لا تتطابق مع الأسماء السابقة
كيفية الإصلاح في R: طول الكائن الأطول ليس مضاعفًا لطول الكائن الأقصر
كيفية الإصلاح في R: لا يمكن تطبيق التباينات إلا على العوامل ذات المستويين أو أكثر

Add a Comment

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