gpt4 book ai didi

r - 在 R 中处理超过 24 小时的持续时间

转载 作者:行者123 更新时间:2023-12-04 10:47:46 25 4
gpt4 key购买 nike

我有一系列长达 118 小时的持续时间,格式类似于“118:34:42”,其中 118 是小时,34 是分钟,42 是秒。输出应为秒数。

我想将其转换为 R 中的某种时间类型,但我看过的大多数库都想添加一个日期(lubridate、zoo、xts),或者由于时间超过了24 小时范围。我可以解析字符串并返回几秒钟,但我想知道是否有更快的方法。

我对 R 有点陌生(可能需要 3 个月的时间来处理这个问题)。

任何帮助弄清楚如何处理这个问题将不胜感激。

例子:

    library(lubridate)
x <- c("118:34:42", "114:12:12")
tt <- hms(x)
Error in parse_date_time(hms, orders, truncated = truncated, quiet = TRUE) :
No formats could be infered from the training set.
#try another route
w <- "118:34:42"
tt2 <- hms(w)
tt2
#[1] NA
z <- "7:02:02"
tt3 <- hmw(z)
tt3
#[1] "7H 2M 2S"

最佳答案

lubridate包有一个功能hms()返回一个时间对象:

library(lubridate)

x <- c("118:34:42", "114:12:12")
tt <- hms(x)

tt
[1] 118 hours, 34 minutes and 42 seconds
[2] 114 hours, 12 minutes and 12 seconds

函数 hms()返回类 Period 的对象:
str(tt)
Formal class 'Period' [package "lubridate"] with 6 slots
..@ .Data : num [1:2] 42 12
..@ year : num [1:2] 0 0
..@ month : num [1:2] 0 0
..@ day : num [1:2] 0 0
..@ hour : num [1:2] 118 114
..@ minute: num [1:2] 34 12

您可以使用这些对象进行算术运算。例如:
tt[2] - tt[1]
[1] -4 hours, -22 minutes and -30 seconds

关于r - 在 R 中处理超过 24 小时的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13985168/

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