【问题标题】:How to process only part of a string into a date in R如何仅将字符串的一部分处理为R中的日期
【发布时间】:2021-08-23 17:50:49
【问题描述】:

我有一些来自 api 的数据,这些数据以不寻常​​的格式提供时间戳,包括星期几和一年中的最后一天。例如 [2021, 8, 22, 22, 0, 20, 6, 234] 是 2021/08/22 22:00:20 一周的第 6 天,一年的第 234 天。我想将其转换为 lubridate 日期时间对象,但不知道如何去除最后两个值。

例如我想获取这些数据

example <- tibble(timestamp = c("[2021, 8, 22, 22, 0, 20, 6, 234]", "[2021, 8, 22, 22, 0, 30, 6, 234]", "[2021, 8, 22, 22, 0, 41, 6, 234]"), temperature = c(28,29,30)) 并将时间戳列转换为 lubridate 日期时间类型。有什么想法吗?

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    您可以使用 strptime 然后提供正确的格式字符串

    example %>% dplyr::mutate(
      datetime = strptime(timestamp, format = "[%Y, %m, %d, %H, %M, %S"))
    
    # A tibble: 3 x 3
      timestamp                        temperature datetime           
      <chr>                                  <dbl> <dttm>             
    1 [2021, 8, 22, 22, 0, 20, 6, 234]          28 2021-08-22 22:00:20
    2 [2021, 8, 22, 22, 0, 30, 6, 234]          29 2021-08-22 22:00:30
    3 [2021, 8, 22, 22, 0, 41, 6, 234]          30 2021-08-22 22:00:41
    

    【讨论】:

    • 呵呵,我不知道format() 可以忽略部分字符串。很高兴知道。谢谢!
    【解决方案2】:

    这个怎么样。

    library(tidyverse)
    
    example <- tibble(timestamp = c("[2021, 8, 22, 22, 0, 20, 6, 234]", "[2021, 8, 22, 22, 0, 30, 6, 234]", "[2021, 8, 22, 22, 0, 41, 6, 234]"), temperature = c(28,29,30))
    
    example %>%
      mutate(timestamp = str_split(timestamp, ","),
             timestamp = map_chr(timestamp, ~paste(parse_number(.x[1:6]), collapse = ".")),
             timestamp = lubridate::ymd_hms(timestamp))
    #> # A tibble: 3 x 2
    #>   timestamp           temperature
    #>   <dttm>                    <dbl>
    #> 1 2021-08-22 22:00:20          28
    #> 2 2021-08-22 22:00:30          29
    #> 3 2021-08-22 22:00:41          30
    

    我只是拆分列表,解析数字以删除括号,然后折叠列表省略最后两个元素,最后解析日期时间。

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 2015-12-31
      • 2015-04-04
      • 2019-06-22
      • 2021-05-15
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多