gpt4 book ai didi

使用 lubridate 将持续时间或周期舍入到整分钟

转载 作者:行者123 更新时间:2023-12-01 23:41:27 25 4
gpt4 key购买 nike

有没有人有更简洁的方法将润滑周期和持续时间对象四舍五入到分钟而不是秒。

例如,我有以下代码管道:

seconds(x = 3600115) %>% as.duration() %>%  as.period()

结果为:41d 16H 1M 55S。我想将其四舍五入,使其变为:41d 16H 2M 0S

有没有人知道比以下更好的方法:

(seconds(x = 3600115) / 60) %>% as.numeric() %>% round() %>% dminutes() %>% as.period()

这导致:41d 16H 2M 0S

最佳答案

duration 对象以秒数的形式存储,period 对象可以使用 period_to_seconds() 方便地转换为秒数,因此您可以为此使用一个简单的函数:

library(lubridate)

# Create period object
p <- seconds_to_period(3600115)

# Create duration object
d <- as.duration(p)

minround <- function(x) {
stopifnot(is.period(x) || is.duration(x))
if (is.duration(x))
round(x / 60) * 60
else
seconds_to_period(round(period_to_seconds(x) / 60) * 60)
}

minround(p)
# [1] "41d 16H 2M 0S"

minround(d)
# [1] "3600120s (~5.95 weeks)"

关于使用 lubridate 将持续时间或周期舍入到整分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64929984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com