كيفية الإصلاح في r: تتضمن الوسائط عددًا مختلفًا من الأسطر


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

 arguments imply differing number of rows: 6, 5

يحدث هذا الخطأ عند محاولة إنشاء إطار بيانات وعدد الصفوف في كل عمود من إطار البيانات ليس هو نفسه.

يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.

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

لنفترض أننا نحاول إنشاء إطار بيانات في R باستخدام ثلاثة نواقل:

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#attempt to create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

Error in data.frame(x1 = x1, x2 = x2, y = y): 
  arguments imply differing number of rows: 6, 5

نتلقى خطأ لأن كل متجه ليس له نفس الطول، لذلك لا يحتوي كل عمود في إطار البيانات الناتج على نفس عدد الصفوف.

يمكننا التحقق من ذلك عن طريق طباعة طول كل متجه:

 #print length of each vector
length(x1)

[1] 6

length(x2)

[1] 5

length(y)

[1] 6

يمكننا أن نرى أن المتجه x2 يبلغ طوله 5، وهو ما لا يتوافق مع طول المتجهين x1 و y .

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

لإصلاح هذا الخطأ، نحتاج ببساطة إلى التأكد من أن كل متجه له نفس الطول بحيث يكون لكل عمود في إطار البيانات الناتج نفس عدد الصفوف.

على سبيل المثال، يمكننا حشو أقصر متجه بقيم NA بحيث يكون لكل متجه نفس الطول:

 #definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)

#pad shortest vector with NA's to have same length as longest vector
length(x2) <- length(y)

#create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)

#view resulting data frame
df

  x1 x2 y
1 1 8 9
2 2 8 11
3 3 8 12
4 4 7 13
5 5 5 14
6 6 NA 16

لاحظ أننا لا نتلقى خطأ لأن كل عمود في إطار البيانات الناتج يحتوي على نفس عدد الصفوف.

مصادر إضافية

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

كيفية الإصلاح في R: الوسيطة ليست رقمية ولا منطقية: return na
كيفية الإصلاح في R: الوسيطة غير الرقمية للمشغل الثنائي
كيفية الإصلاح في R: الاستبدال له طول صفر

Add a Comment

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