Как исправить: строка не имеет однозначного стандартного формата.


Распространенная ошибка, с которой вы можете столкнуться в 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: замена имеет нулевую длину

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *