Lubridate - 如何使用 parse_date_time 正确解析十进制分钟

Lubridate - how to properly parse decimal minutes using parse_date_time

假设您有一个时间向量,以分钟为单位存储为十进制数。对于此示例,我将选择 2.5,即 2 分 30 秒。

我想使用 lubridateparse_date_time 函数解析它。但是,我看到的输出是错误的。 运行 这一行之后:

parse_date_time(2.5, "M:S")

我得到以下输出:

"0000-01-01 00:02:05 UTC"

而不是预期

"0000-01-01 00:02:30 UTC"

不知何故 lubridate 无法识别我的 .5 不是 5 秒,而是 30 秒,因为两分半钟是 2 分 30 秒而不是 2 分 5 秒。

我应该使用什么 parse_date_time 的正确格式来获得预期的输出?

这是一个基本的 R 选项:

val <- 2.5
as.POSIXct(val*60, origin = '0000-01-01', tz = 'UTC')
#[1] "0000-01-01 00:02:30 UTC"

如果你想使用lubridate你可以这样做

library(lubridate)
time <- 2.5
as.period(as.duration(days(x=1))*(time/24))
#[1] "2H 30M 0S"
as.period(as.duration(days(x=1))*(time/1440))
#[1] "2M 30S"