lubridate::duration("minutes") returns 持续时间小于 60 秒时出错
lubridate::duration("minutes") returns an error when duration less than 60 seconds
我正在为通常持续数分钟的事件计时,但有时事件会少于 60 秒,并且 lubridate::duration() returns 是一个错误值。
我可以通过检查大于或小于 60 秒的时间差来用 IF 和 2 duration 函数解决这个问题,但这似乎是一种不优雅的方法。
library(lubridate)
for (x in c(59, 60)) {
startTime <- Sys.time()
Sys.sleep(x)
print(duration(as.numeric(Sys.time() - startTime), "minutes" ))
}
[1] "3543.86645793915s (~59.06 minutes)"
[1] "60.0540399551392s (~1 minutes)"
我只希望时间小于 60 秒(十进制分钟或秒)。
谢谢。
我假设你的时间间隔是 class difftime 的对象。如果是这样,请看下一个脚本:
#Create object difftime
a <- Sys.time()
b <- Sys.time()
DELTA_TIME <- b - a
#print the duration
print(duration(as.numeric(DELTA_TIME,units='mins'),units='minutes'))
看到这种打印持续时间的方式将接受 class difftime 的任何对象。重要的是函数 as.numeric
中的参数 unit='mins'
我正在为通常持续数分钟的事件计时,但有时事件会少于 60 秒,并且 lubridate::duration() returns 是一个错误值。
我可以通过检查大于或小于 60 秒的时间差来用 IF 和 2 duration 函数解决这个问题,但这似乎是一种不优雅的方法。
library(lubridate)
for (x in c(59, 60)) {
startTime <- Sys.time()
Sys.sleep(x)
print(duration(as.numeric(Sys.time() - startTime), "minutes" ))
}
[1] "3543.86645793915s (~59.06 minutes)"
[1] "60.0540399551392s (~1 minutes)"
我只希望时间小于 60 秒(十进制分钟或秒)。 谢谢。
我假设你的时间间隔是 class difftime 的对象。如果是这样,请看下一个脚本:
#Create object difftime
a <- Sys.time()
b <- Sys.time()
DELTA_TIME <- b - a
#print the duration
print(duration(as.numeric(DELTA_TIME,units='mins'),units='minutes'))
看到这种打印持续时间的方式将接受 class difftime 的任何对象。重要的是函数 as.numeric
中的参数 unit='mins'