【问题标题】:Converting a timestamp in R在 R 中转换时间戳
【发布时间】:2021-07-16 15:26:13
【问题描述】:

我正在尝试将时间戳(例如 2'30"50似乎不起作用。有人对如何转换有任何提示吗?

【问题讨论】:

    标签: r date time timestamp


    【解决方案1】:

    这里有两个以秒为单位获取时间的选项。

    选项 1 - 从字符串中提取数字,将第一个数字乘以 3600,第二个乘以 60,第三个乘以 1,然后将它们相加。

    x <- c("2'30\"50", "1'01\"15")
    
    sapply(stringr::str_extract_all(x, '\\d+'), function(x) {
      x1 <- as.numeric(x) 
      x1[1] * 3600 + x1[2] * 60 + x1[3]
    })
    #[1] 9050 3675
    

    选项 2 - 使用hms 将时间戳转换为周期对象,并使用period_to_seconds 以秒为单位转换时间戳。

    library(lubridate)
    period_to_seconds(hms(x))
    #[1] 9050 3675
    

    如果您希望以毫秒为单位输出,请将输出乘以 1000。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      相关资源
      最近更新 更多