【问题标题】:Convert a duration %H:%M:%S to seconds [duplicate]将持续时间 %H:%M:%S 转换为秒 [重复]
【发布时间】:2018-10-07 00:49:05
【问题描述】:
durations <- "01:01:01" #1 hour 1 min and 1 sec

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

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

【问题讨论】:

标签: r time format


【解决方案1】:

又快又脏:

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

【讨论】:

    【解决方案2】:

    将其转换为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))
    

    【讨论】:

      猜你喜欢
      • 2016-08-29
      • 2020-02-14
      • 2013-10-04
      • 2020-05-09
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      相关资源
      最近更新 更多