【问题标题】:Substracting minutes from time (in 24 hour format)?从时间中减去分钟(以 24 小时格式)?
【发布时间】:2023-04-07 03:42:01
【问题描述】:

想知道是否有人可以提供帮助

time <-c("16:09", "05:26", "08:47", "03:04", "03:07", "02:01")
min <-c(60, 5, 124, 35, 400, 2)

我想从向量“time”的第 n 个元素中减去向量“min”的第 n 个元素来提取修改后的时间。因此,例如向量“revised.time”的第一个元素在减去 60 分钟后应该是 15.09。

提前致谢

一个

【问题讨论】:

    标签: r


    【解决方案1】:

    这应该可以为您提供所需的内容,但您可能需要考虑使用专用包:

    time <- c("16:09", "05:26", "08:47", "03:04", "03:07", "02:01")
    min  <- c(60, 5, 124, 35, 400, 2)
    
    format(strptime(time, "%M:%S") - min, "%M:%S")
    # [1] "15:09" "05:21" "06:43" "02:29" "56:27" "01:59"
    

    【讨论】:

    • 您好,除了元素 5 之外,这对大多数人来说都可以正常工作 - 给出“56:27”的时间而不是 24 小时格式的时间?
    【解决方案2】:

    您需要先格式化时间向量。然后你可以像这样减去秒数:

    time2<-strptime(time, "%H:%M")
    time2[1]-(60*60)
    
    [1] "2015-10-19 15:09:00 CEST"
    

    【讨论】:

      【解决方案3】:

      你可以在 lubridate 中做到这一点

      library(lubridate)
      
      hm(time) - new_period(minute = min)
      

      【讨论】:

        猜你喜欢
        • 2018-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多