如何在 r 中将日期转换为数字(带有示例)


在 R 中,可以使用两种方法将日期值转换为数值:

方法1:使用as.numeric()

 as. numeric (my_date)

这将返回日期对象与 1/1/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

根据结果我们可以看到:

  • 我们的日期对象与 1/1/1970 之间存在1,634,189,700 秒的差异。
  • 我们的日期对象与 1/1/1970 之间存在18,914.23 天的差异。
  • 我们的日期对象与 1/1/1970 之间存在51.81982 年的差异。

方法2:使用lubridate包函数

以下代码显示如何使用 R 中lubridate包中的函数将日期对象转换为数字:

 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 中按日期对数据框进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注