【发布时间】:2020-11-05 13:44:28
【问题描述】:
是否可以在 R 中以小时和分钟计算日期时间之间的时差?例如在
difftime("2020-09-14 18:01:31 ", "2020-09-14 17:47:38", units = "hours")
应该以(hh:mm) 之类的格式提供00:14
【问题讨论】:
标签: r
是否可以在 R 中以小时和分钟计算日期时间之间的时差?例如在
difftime("2020-09-14 18:01:31 ", "2020-09-14 17:47:38", units = "hours")
应该以(hh:mm) 之类的格式提供00:14
【问题讨论】:
标签: r
这是在基础 R 中执行此操作的一种方法:
get_in_hm <- function(time1, time2) {
format(as.POSIXct(as.numeric(difftime(time1, time2, units = 'secs')),
origin = '1970-01-01', tz = 'UTC'), '%H:%M')
}
get_in_hm("2020-09-14 18:01:31", "2020-09-14 17:47:38")
#[1] "00:13"
以秒为单位获取difftime 输出,转换为数字,将其视为自纪元以来的秒数,并从捕获的日期时间返回小时和分钟。
如果你想四舍五入,你可以使用:
get_in_hm <- function(time1, time2) {
format(as.POSIXct(round(as.numeric(difftime(time1,time2,units = 'mins'))) * 60,
origin = '1970-01-01', tz = 'UTC'), '%H:%M')
}
get_in_hm("2020-09-14 18:01:31", "2020-09-14 17:47:38")
#[1] "00:14"
【讨论】:
此解决方案不会完全满足您的需求,但足够简单。
library(lubridate)
d <- difftime("2020-09-14 18:01:31 ", "2020-09-14 17:47:38", units = "mins") %>%
as_hms()
d
# 00:13:53
【讨论】: