كيفية الإصلاح في r: خطأ في rbind(deparse.level, …): أرقام أعمدة الوسيطة غير متطابقة


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

 Error in rbind(deparse.level, ...): 
  numbers of columns of arguments do not match 

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

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

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

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

 #create first data frame
df1 <- data. frame (x=c(1, 4, 4, 5, 3),
                  y=c(4, 4, 2, 8, 10))

df1

  xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10

#create second data frame
df2 <- data. frame (x=c(2, 2, 2, 5, 7),
                  y=c(3, 6, 2, 0, 0),
                  z=c(2, 7, 7, 8, 15))

df2

  X Y Z
1 2 3 2
2 2 6 7
3 2 2 7
4 5 0 8
5 7 0 15

لنفترض الآن أننا نحاول استخدام rbind لربط إطاري البيانات هذين في إطار بيانات واحد:

 #attempt to row-bind the two data frames together
rbind(df1, df2)

Error in rbind(deparse.level, ...): 
  numbers of columns of arguments do not match

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

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

هناك طريقتان لحل هذه المشكلة:

الطريقة الأولى: استخدام rbind على الأعمدة المشتركة

إحدى طرق حل هذه المشكلة هي استخدام الدالة intersect() ‎ للعثور على أسماء الأعمدة المشتركة بين إطارات البيانات، ثم ربط إطارات البيانات بهذه الأعمدة فقط:

 #find common column names
common <- intersect(colnames(df1), colnames(df2))

#row-bind only on common column names
df3 <- rbind(df1[common], df2[common])

#view result
df3

   xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10
6 2 3
7 2 6
8 2 2
9 5 0
10 7 0

الطريقة الثانية: استخدم bind_rows() من dplyr

هناك طريقة أخرى لحل هذه المشكلة وهي استخدام الدالة bind_rows() من الحزمة dplyr ، والتي تملأ تلقائيًا قيم NA لأسماء الأعمدة غير المتطابقة:

 library (dplyr)

#bind together the two data frames
df3 <- bind_rows(df1, df2)

#view result
df3

   X Y Z
1 1 4 NA
2 4 4 NA
3 4 2 NA
4 5 8 NA
5 3 10 NA
6 2 3 2
7 2 6 7
8 2 2 7
9 5 0 8
10 7 0 15

لاحظ أن قيم NA يتم ملؤها لقيم df1 نظرًا لأن العمود z غير موجود في إطار البيانات هذا.

مصادر إضافية

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

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

Add a Comment

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