gpt4 book ai didi

r - 在 R 中处理时间段,例如 5 分 30 秒

转载 作者:行者123 更新时间:2023-12-01 08:20:24 24 4
gpt4 key购买 nike

有没有处理 R 中 05:30(5 分 30 秒)等时间段的好方法?

或者,在几秒钟内将其转换为整数的最快方法是什么?

我只能转换为日期,而无法真正找到时间的数据类型。

我在动物园中使用 R。

非常感谢 !

秒是解决这个问题的最好方法。我根据我的目的改编了下面的 Shane 代码,这是结果。

# time - time in the format of dd hh:mm:ss
# (That's the format used in cvs export from Alcatel CCS reports)
#
time.to.seconds <- function(time) {

t <- strsplit(as.character(time), " |:")[[1]]
seconds <- NaN

if (length(t) == 1 )
seconds <- as.numeric(t[1])
else if (length(t) == 2)
seconds <- as.numeric(t[1]) * 60 + as.numeric(t[2])
else if (length(t) == 3)
seconds <- (as.numeric(t[1]) * 60 * 60
+ as.numeric(t[2]) * 60 + as.numeric(t[3]))
else if (length(t) == 4)
seconds <- (as.numeric(t[1]) * 24 * 60 * 60 +
as.numeric(t[2]) * 60 * 60 + as.numeric(t[3]) * 60 +
as.numeric(t[4]))

return(seconds)
}

最佳答案

正如 Dirk 指出的那样,有一个名为“difftime”的对象,但它不能被添加/减去。

> as.difftime(5, units="mins")
Time difference of 5 mins

> d <- seq(from=as.POSIXct("2003-01-01"), to=as.POSIXct("2003-01-04"), by="days")
> d
[1] "2003-01-01 GMT" "2003-01-02 GMT" "2003-01-03 GMT" "2003-01-04 GMT"

> d + as.difftime(5, units="mins")
[1] "2003-01-01 00:00:05 GMT" "2003-01-02 00:00:05 GMT"
[3] "2003-01-03 00:00:05 GMT" "2003-01-04 00:00:05 GMT"
Warning message:
Incompatible methods ("+.POSIXt", "Ops.difftime") for "+"

看来你现在可以这样做:
  > as.difftime(5, units='mins')
Time difference of 5 mins
> d <- seq(from=as.POSIXct("2003-01-01"), to=as.POSIXct("2003-01-04"), by="days")
> d
[1] "2003-01-01 GMT" "2003-01-02 GMT" "2003-01-03 GMT" "2003-01-04 GMT"
> d + as.difftime(5, unit='mins')
[1] "2003-01-01 00:05:00 GMT" "2003-01-02 00:05:00 GMT"
[3] "2003-01-03 00:05:00 GMT" "2003-01-04 00:05:00 GMT"
> d + as.difftime(5, unit='secs')
[1] "2003-01-01 00:00:05 GMT" "2003-01-02 00:00:05 GMT"
[3] "2003-01-03 00:00:05 GMT" "2003-01-04 00:00:05 GMT"
>

这是最近发布的 R 2.15.0

关于r - 在 R 中处理时间段,例如 5 分 30 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389428/

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