كيفية حل المشكلة: حاول تعيين "أسماء الأعمدة"؛ على كائن له أقل من بعدين
رسالة الخطأ التي قد تواجهها عند استخدام R هي:
Error in `colnames<-`(`*tmp*`, value = c("var1", "var2", "var3")):
attempt to set 'colnames' on an object with less than two dimensions
يحدث هذا الخطأ عادةً عند محاولة استخدام الدالة colnames() لتعيين أسماء الأعمدة على كائن ليس إطار بيانات أو مصفوفة.
يوضح المثال التالي كيفية حل هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame
df <- data. frame (team=c('A', 'A', 'C', 'B', 'C', 'B', 'B', 'C', 'A'),
points=c(12, 8, 26, 25, 38, 30, 24, 24, 15),
rebounds=c(10, 4, 5, 5, 4, 3, 8, 18, 22))
#view data frame
df
team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
لنفترض الآن أننا نحاول إضافة سطر جديد في نهاية إطار البيانات:
#define new row to add to end of data frame
new_row <- c('D', 15, 11)
#attempt to define column names for new row
colnames(new_row) <- colnames(df)
Error in `colnames<-`(`*tmp*`, value = c("team", "points", "rebounds")):
attempt to set 'colnames' on an object with less than two dimensions
لقد تلقينا خطأً لأننا استخدمنا الدالة colnames() على متجه بدلاً من إطار بيانات أو مصفوفة.
كيفية اصلاح الخطأ
لتجنب هذا الخطأ، نحتاج إلى التأكد من أننا نستخدم الدالة colnames() مع إطار بيانات:
على سبيل المثال، يمكننا استخدام الكود التالي لإضافة سطر جديد في نهاية إطار البيانات
#define new row to add to end of data frame
new_row <- data. frame ('D', 15, 11)
#define column names for new row
colnames(new_row) <- colnames(df)
#add new row to end of data frame
df <- rbind(df, new_row)
#view updated data frame
df
team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
10 D 15 11
هذه المرة لا نتلقى أي أخطاء لأننا استخدمنا الدالة colnames() لتعيين أسماء الأعمدة لإطار البيانات بدلاً من المتجه.
يمكننا بعد ذلك استخدام rbind() بنجاح لربط السطر الجديد بنهاية إطار البيانات الموجود.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: تتضمن الوسائط عددًا مختلفًا من الأسطر
كيفية الإصلاح في R: خطأ في اختيار الوسائط غير المستخدمة
كيفية الإصلاح في R: الاستبدال له طول صفر