Как преобразовать дату в число в R (с примерами)


Есть два метода, которые вы можете использовать для преобразования значений даты в числовые значения в R:

Способ 1: используйте as.numeric()

as. numeric (my_date)

Это вернет количество секунд, прошедших между вашим объектом даты и 01.01.1970.

Способ 2: использовать функции из пакета lubridate

library (lubridate)

#get seconds value in date object
second(my_date)

#get minutes value in date object
minute(my_date)

...
#get year value in date object
year(my_date)

Это вернет значение секунд, минут, лет и т. д. из вашего объекта даты.

В следующих примерах показано, как использовать каждый метод на практике.

Способ 1: используйте as.numeric()

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

#create date object
my_date <- as. POSIXct ("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")

#view date object
my_date

[1] "2021-10-14 05:35:00 UTC"

#convert date object to number of seconds since 1/1/1970
as. numeric (my_date)

[1] 1634189700

#convert date object to number of days since 1/1/1970
as. numeric (my_date) / 86400

[1] 18914.23

#convert date object to number of years since 1/1/1970
as. numeric (my_date) / 86400 / 365

[1] 51.81982

На основании вывода мы видим:

  • Разница между нашим объектом даты и 01.01.1970 составляет 1 634 189 700 секунд .
  • Разница между нашим объектом даты и 01.01.1970 составляет 18 914,23 дня .
  • Существует разница в 51,81982 года между нашим объектом даты и 01.01.1970.

Способ 2: использование функций из пакета lubridate

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

library (lubridate)

#create date object
my_date <- as. POSIXct ("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")

#view date object
my_date

[1] "2021-10-14 05:35:00 UTC"

#extract various numerical values from date object
second(my_date)

[1] 0

minute(my_date)

[1] 35

hour(my_date)

[1] 5

day(my_date)

[1] 14

month(my_date)

[1] 10

year(my_date)

[1] 2021

Используя эти функции, мы можем извлечь значения секунд, минут, часов, дней, месяцев и лет из нашего объекта даты.

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

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

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

Как преобразовать строку в дату и время в R
Как преобразовать числа в даты в R
Как отсортировать фрейм данных по дате в R