Lubridate - 如何使用 parse_date_time 正确解析十进制分钟
Lubridate - how to properly parse decimal minutes using parse_date_time
假设您有一个时间向量,以分钟为单位存储为十进制数。对于此示例,我将选择 2.5,即 2 分 30 秒。
我想使用 lubridate
的 parse_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"
假设您有一个时间向量,以分钟为单位存储为十进制数。对于此示例,我将选择 2.5,即 2 分 30 秒。
我想使用 lubridate
的 parse_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"