كيفية الإصلاح في r: لا يُسمح بتكرار "أسماء الصفوف".
الخطأ الذي قد تواجهه في R هو:
Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed
يحدث هذا الخطأ عادةً عند محاولة قراءة ملف CSV إلى R الذي يحتوي على فواصل في نهاية كل سطر في الملف باستثناء سطر الرأس.
يشرح هذا البرنامج التعليمي بالضبط كيفية إصلاح هذا الخطأ.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا ملف CSV التالي المسمى my_data.csv :
لاحظ أن هناك فواصل في نهاية كل سطر في الملف باستثناء سطر الرأس.
لنفترض الآن أننا نحاول استيراد هذا الملف إلى R:
#attempt to import CSV into data frame
df <- read. csv (' my_data.csv ')
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
duplicate 'row.names' are not allowed
نتلقى خطأً بسبب وجود فواصل في نهاية كل سطر في الملف باستثناء سطر الرأس، مما يدفع R إلى الاعتقاد بأن العمود الأول من القيم هو أسماء الأسطر.
نظرًا لأن اثنين من الصفوف لهما نفس القيمة الأولية (4)، يعتقد R أن هناك أسماء صفوف مكررة.
كيفية اصلاح الخطأ
طريقة إصلاح هذا الخطأ هي ببساطة استخدام Row.names=NULL عند استيراد الملف:
#import CSV file into data frame
df <- read. csv (' my_data.csv ', row.names =NULL)
#view data frame
df
row.names column1 column2 column3
1 4 5 7 NA
2 4 2 1 NA
3 7 9 0 NA
تمكنا من استيراد ملف CSV بنجاح، ولكن أسماء الأعمدة خاطئة.
لحل هذه المشكلة يمكننا تغيير أسماء الأعمدة ثم حذف العمود الأخير:
#modify column names
colnames(df) <- colnames(df)[2: ncol (df)]
#drop last column
df <- df[1:( ncol (df)-1)]
#view updated data frame
df
column1 column2 column3
1 4 5 7
2 4 2 1
3 7 9 0
أصبح إطار البيانات الآن بالتنسيق الصحيح.
ذات صلة: كيفية استخدام وظيفة ncol في R
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية حل الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: الأسماء لا تتطابق مع الأسماء السابقة
كيفية الإصلاح في R: طول الكائن الأطول ليس مضاعفًا لطول الكائن الأقصر
كيفية الإصلاح في R: لا يمكن تطبيق التباينات إلا على العوامل ذات المستويين أو أكثر