Как преобразовать числа в даты в R


Часто вам может понадобиться преобразовать числа в формат даты в R. Самый простой способ сделать это — использовать пакет lubridate , который имеет несколько полезных функций для работы с датами в R.

В этом руководстве представлено несколько примеров использования этих функций на практике.

Пример 1. Преобразование целых чисел в даты

В следующем коде показано, как преобразовать столбец целочисленных значений во фрейме данных в формат даты с помощью функции ymd() :

library (lubridate)

#create data frame
df <- data.frame(date = c(20201022, 20201023, 20201026, 20201027, 20201028),
 sales = c(4, 7, 8, 9, 12))

#convert date column from numeric to year-month-date format
df$date <- ymd (df$date)

#view data frame
df

 date sales
1 2020-10-22 4
2 2020-10-23 7
3 2020-10-26 8
4 2020-10-27 9
5 2020-10-28 12

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

[1] "Date"

Обратите внимание, что пакет lubridate имеет несколько функций для обработки различных форматов даты.

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

library (lubridate)

#create data frame
df <- data.frame(date = c(20202210, 20202310, 20202610, 20202710, 20202810),
 sales = c(4, 7, 8, 9, 12))

#convert date column from numeric to year-month-date format
df$date <- ydm (df$date)

#view data frame
df

 date sales
1 2020-10-22 4
2 2020-10-23 7
3 2020-10-26 8
4 2020-10-27 9
5 2020-10-28 12

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

[1] "Date"

Пример 2. Преобразование месяцев и лет в даты

В следующем коде показано, как преобразовать столбец числовых значений, представляющих количество месяцев с 1 января 2010 г., в формат даты с помощью функции month() :

library (lubridate)

#create data frame
df <- data.frame(date = c(11, 15, 18, 22, 24),
 sales = c(4, 7, 8, 9, 12))

#convert date column from numeric to year-month-date format
df$date <- as. Date('2010-01-01') + months (df$date)

#view data frame
df

 date sales
1 2010-12-01 4
2 2011-04-01 7
3 2011-07-01 8
4 2011-11-01 9
5 2012-01-01 12

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

[1] "Date"

В следующем коде показано, как преобразовать столбец числовых значений, представляющих количество лет с 1 января 2010 г., в формат даты с помощью функции years() :

library (lubridate)

#create data frame
df <- data.frame(date = c(11, 15, 18, 22, 24),
 sales = c(4, 7, 8, 9, 12))

#convert date column from numeric to year-month-date format
df$date <- as. Date('2010-01-01') + years (df$date)

#view data frame
df

 date sales
1 2021-01-01 4
2 2025-01-01 7
3 2028-01-01 8
4 2032-01-01 9
5 2034-01-01 12

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

[1] "Date"

Бонус: обратитесь к этой памятке, чтобы лучше понять функции, доступные в пакете lubridate.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.