كيفية الإصلاح في r: خطأ في aggregate.data.frame(): يجب أن يكون للوسائط نفس الطول


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

 Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length 

يحدث هذا الخطأ عندما تحاول استخدام الدالة Aggregate() لتلخيص القيم في عمود واحد أو أكثر من إطار البيانات في R ولكنك غير قادر على تحديد اسم إطار البيانات عند الرجوع إلى الأعمدة.

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

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

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
                 points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))

#view data frame
df

   team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18

لنفترض الآن أننا نحاول استخدام الدالة Aggregate() لحساب متوسط قيمة النقاط ، مجمعة حسب الفريق :

 #attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)

Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length

لقد تلقينا خطأ لأننا فشلنا في تحديد اسم كتلة البيانات في الوسيطة list() .

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

طريقة إصلاح هذا الخطأ هي ببساطة استخدام df$team بدلاً من “team” فقط في وسيطة list() :

 #calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)

  Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000

لاحظ أننا لا نتلقى أي أخطاء هذه المرة لأننا حددنا اسم إطار البيانات في الوسيطة list() .

لاحظ أنه إذا كنت تستخدم أسماء أعمدة متعددة في الوسيطة list() ، فسوف تحتاج إلى تحديد اسم إطار البيانات لكل اسم عمود، وإلا فسوف تتلقى خطأ.

مصادر إضافية

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

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

Add a Comment

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