【问题标题】:Lubridate - how to properly parse decimal minutes using parse_date_time [duplicate]Lubridate - 如何使用 parse_date_time [重复] 正确解析十进制分钟
【发布时间】:2021-02-01 10:17:39
【问题描述】:

假设您有一个以分钟为单位的时间向量,该向量存储为十进制数。在本例中,我将选择 2.5,即 2 分 30 秒。

我想使用lubridateparse_date_time 函数来解析这个。但是,我看到的输出是错误的。运行此行后:

parse_date_time(2.5, "M:S")

我得到以下输出:

"0000-01-01 00:02:05 UTC"

而不是预期

"0000-01-01 00:02:30 UTC"

不知何故,lubridate 无法识别我的.5 不是指 5 秒,而是 30 秒,因为两分半钟是 2 分 30 秒,而不是 2 分 5 秒。

我应该使用parse_date_time 的正确格式来获得预期的输出?

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    这是一个基本的 R 选项:

    val <- 2.5
    as.POSIXct(val*60, origin = '0000-01-01', tz = 'UTC')
    #[1] "0000-01-01 00:02:30 UTC"
    

    【讨论】:

      【解决方案2】:

      如果你想使用lubridate,你可以这样做

      library(lubridate)
      time <- 2.5
      as.period(as.duration(days(x=1))*(time/24))
      #[1] "2H 30M 0S"
      as.period(as.duration(days(x=1))*(time/1440))
      #[1] "2M 30S"
      

      【讨论】:

      • 谢谢,但我需要 0 H 2 MIN 30 S
      • 然后你可以将一天中的24小时更改为一天中的1440分钟。
      猜你喜欢
      • 2017-04-28
      • 2022-01-17
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2020-02-16
      相关资源
      最近更新 更多