كيفية الإصلاح: السلسلة ليست بتنسيق قياسي لا لبس فيه
الخطأ الشائع الذي قد تواجهه في R هو:
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
يحدث هذا الخطأ عادةً عند محاولة تحويل كائن في R إلى تنسيق تاريخ، ولكن الكائن حاليًا إما حرف أو عامل.
لإصلاح هذا الخطأ، يجب عليك أولاً تحويل الكائن إلى رقمي.
يشرح هذا البرنامج التعليمي كيفية إصلاح هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame
df <- data. frame (date=c('1459397140', '1464397220', '1513467142'),
sales=c(140, 199, 243))
#view data frame
df
dirty date
1 1459397140 140
2 1464397220 199
3 1513467142 243
لنفترض الآن أننا نحاول تحويل قيم عمود التاريخ إلى تنسيق تاريخ:
#attempt to convert values in date column to date
df$date <- as. POSIXct (df$date, origin=' 1970-01-01 ')
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
لقد تلقينا خطأ لأن قيم عمود التاريخ موجودة حاليًا بتنسيق أحرف، وهو ما لا تستطيع الدالة as.POSIXct() معالجته.
كيفية اصلاح الخطأ
لإصلاح هذا الخطأ، نحتاج إلى استخدام as.numeric() لتحويل قيم عمود التاريخ أولاً إلى تنسيق رقمي، وهو تنسيق يمكن لـ as.POSIXct التعامل معه:
#convert values in date column to date
df$date <- as. POSIXct (as. numeric (as. character (df$date)), origin=' 1970-01-01 ')
#view updated data frame
df
dirty date
1 2016-03-31 04:05:40 140
2 2016-05-28 01:00:20 199
3 2017-12-16 23:32:22 243
هذه المرة لا نتلقى خطأ ويمكننا تحويل قيم عمود التاريخ إلى تنسيق التاريخ بنجاح لأننا قمنا بتحويل القيم إلى تنسيق الأرقام أولاً.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح: لا يمكن إجبار الكائن (القائمة) على كتابة “مزدوج”
كيفية الإصلاح في R: صيغة القالب غير صالحة في ExtractVars
كيفية الإصلاح في R: الاستبدال له طول صفر