Как преобразовать числа в даты в 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.