كيفية الإصلاح: خطأ في strsplit(unitspec, ” “): وسيطة بدون حرف
الخطأ الذي قد تواجهه في R هو:
Error in strsplit(df$my_column, split = "1"): non-character argument
يحدث هذا الخطأ عادةً عند محاولة استخدام الدالة strsplit() في R لتقسيم سلسلة، عندما لا يكون الكائن الذي تعمل معه سلسلة.
يشرح هذا البرنامج التعليمي بالضبط كيفية إصلاح هذا الخطأ.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame df <- data. frame (team=c('A', 'B', 'C'), dots=c(91910, 14015, 120215)) #view data frame df team points 1 A 91910 2 B 14015 3 C 120215
لنفترض الآن أننا نحاول استخدام الدالة strsplit() لتقسيم القيم في عمود “النقاط” بناءً على مكان ظهور الرقم 1:
#attempt to split values in points column
strsplit(df$points, split="1")
Error in strsplit(df$points, split = "1"): non-character argument
لقد تلقينا خطأ لأن المتغير “النقاط” ليس حرفًا.
يمكننا تأكيد ذلك عن طريق التحقق من فئة هذا المتغير:
#display class of "points" variable
class(df$points)
[1] "digital"
يمكننا أن نرى أن هذا المتغير له فئة رقمية.
كيفية اصلاح الخطأ
طريقة إصلاح هذا الخطأ هي استخدام as.character() لتحويل متغير “النقاط” إلى حرف قبل محاولة استخدام الدالة strsplit() :
#split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")
[[1]]
[1990"
[[2]]
[1] "" "40" "5"
[[3]]
[1] "" "202" "5"
هذه المرة نجحنا في تقسيم كل قيمة في عمود “النقاط” لأننا استخدمنا أولاً الدالة as.character() لتحويل “النقاط” إلى حرف.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية حل الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: الأسماء لا تتطابق مع الأسماء السابقة
كيفية الإصلاح في R: أعمدة أكثر من أسماء الأعمدة
كيفية الإصلاح في R: الاستبدال به صفوف X، والبيانات بها Y