将持续时间%H:%M:%S转换为秒

时间:2018-04-26 10:43:34

标签: r time format

durations <- "01:01:01" #1 hour 1 min and 1 sec

如何使用基数R来获得与之对应的秒数(或分钟数)的数字10基表示(它将是3661秒)? R中的时间(和日期)总是伤害我。 有很多类似的SO问题(例如herehere),但我仍然没有真正做到正确。 一次尝试是:

as.numeric(format(strptime('00:01:01', format='%H:%M:%S'), '%S'))

2 个答案:

答案 0 :(得分:1)

我们将其转换为POSIXlt后,提取hourminsec并执行算术

v1 <- strptime(durations, format='%H:%M:%S')
v1$hour * 3600 + v1$min * 60 + v1$sec
#[1] 3661

c(unlist(unclass(v1)[c("hour", "min", "sec")]) %*% c(3600, 60, 1))

答案 1 :(得分:1)

又快又脏:

as.numeric(strsplit(durations, ":")[[1]]) %*% c(3600, 60, 1)