gpt4 book ai didi

r - 将 difftime 输出为 HH :MM:SS:mm in R

转载 作者:行者123 更新时间:2023-12-04 15:32:31 26 4
gpt4 key购买 nike

我想标题说明了一切:我有一对使用 Sys.time() 生成的 POSIX 时间对象,我希望以一致的方式显示差异。我希望时间从毫秒到天的数量级不等,但找不到以 DD:HH:MM:SS:mm difftime 输出的方法。

任何简洁的 R 方法可以做到这一点(最好没有包)?

最佳答案

帖子的主题和内容要求不同的格式,因此我们假设需要帖子正文中的格式,即 DD:HH:MM:SS。

假设输入 x 必须是秒向量或 difftime 对象:

Fmt <- function(x) UseMethod("Fmt")
Fmt.difftime <- function(x) {
units(x) <- "secs"
x <- unclass(x)
NextMethod()
}
Fmt.default <- function(x) {
y <- abs(x)
sprintf("%s%02d:%02d:%02d:%02d",
ifelse(x < 0, "-", ""), # sign
y %/% 86400, # days
y %% 86400 %/% 3600, # hours
y %% 3600 %/% 60, # minutes
y %% 60 %/% 1) # seconds
}

# test
now <- Sys.time()
now100 <- now + 100

Fmt(now100 - now)
## [1] "00:00:01:40"

Fmt(now - now100)
## "-00:00:01:40"

关于r - 将 difftime 输出为 HH :MM:SS:mm in R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24702796/

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