Как исправить в r: ошибка в as.date.numeric(x): необходимо указать «origin»


Ошибка, с которой вы можете столкнуться в R:

 Error in as.Date.numeric(x) : 'origin' must be supplied 

Эта ошибка обычно возникает, когда вы пытаетесь преобразовать число в дату в R, но не можете указать исходную дату.

В этом руководстве объясняется, как именно исправить эту ошибку.

Как воспроизвести ошибку

Предположим, у нас есть следующий фрейм данных в R, который показывает общий объем продаж компании за несколько дней:

 #create data frame
df <- data. frame (date=c(27, 140, 180, 200),
                 sales=c(12, 22, 30, 31))

#view data frame
df

  dirty dates
1 27 12
2 140 22
3 180 30
4,200 31

Мы можем использовать функцию str() для отображения структуры фрейма данных:

 #view structure of data frame
str(df)

'data.frame': 4 obs. of 2 variables:
 $ date: num 27 140 180 200
 $ sales: num 12 22 30 31

Мы видим, что столбцы даты и продаж являются числовыми.

Теперь предположим, что мы пытаемся преобразовать столбец даты в формат даты:

 #attempt to convert date column to date format
df$date <- as. Date (df$date)

Error in as.Date.numeric(df$date) : 'origin' must be supplied

Мы получаем сообщение об ошибке, поскольку не использовали аргумент origin в функции as.Date() .

Как исправить ошибку

Чтобы исправить эту ошибку, нужно просто указать исходную дату, чтобы R знал, как конвертировать числа в даты:

 #convert date column to date format, using 2020-01-01 as origin date
df$date <- as. Date (df$date, origin=" 2020-01-01 ")

#view updated data frame
df

        dirty dates
1 2020-01-28 12
2 2020-05-20 22
3 2020-06-29 30
4 2020-07-19 31

Указав исходную дату, R преобразовал числа в даты, добавив количество дней к указанной исходной дате.

Например:

  • Первое значение даты, равное 27, было преобразовано в 28 января 2020 г. путем добавления 27 дней к исходной дате 01 января 2020 г.
  • Второе значение даты, равное 140, было преобразовано в 20.05.2020 путем добавления 140 дней к исходной дате 01.01.2020.

И так далее.

Мы также можем использовать функцию class() , чтобы подтвердить, что новый столбец действительно является датой:

 #display class of date column
class(df$date)

[1] “Date”

В новом столбце теперь указана дата, а не число.

Дополнительные ресурсы

В следующих руководствах объясняется, как устранить другие распространенные ошибки в R:

Как исправить в R: Имена не совпадают с предыдущими именами
Как исправить в R: длина более длинного объекта не кратна длине более короткого объекта
Как исправить в R: контрасты можно применять только к факторам с 2 и более уровнями

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

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