如何修复:字符串不是明确的标准格式


在 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 中的其他常见错误:

如何修复:无法强制对象(列表)键入“double”
如何修复 R:ExtractVars 中的模板公式无效
如何在 R 中修复:替换长度为零

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注