【问题标题】:convert character vector to time?将字符向量转换为时间?
【发布时间】:2020-12-14 01:22:44
【问题描述】:

我想将下面的字符向量转换为时间变量。

times <-
  c(
    "9/9/2015 16:03:13", "9/9/2015 17:03:13", "9/9/2015 17:56:38",
    "9/9/2015 17:57:29", "9/9/2015 19:52:55", "9/10/2015 8:18:47",
    "9/9/2015 15:47:56", "9/9/2015 22:23:56", "9/10/2015 0:07:41",
    "9/10/2015 11:46:23", "9/11/2015 10:12:21", "9/11/2015 15:33:41",
    "9/12/2015 9:08:46", "9/15/2015 12:54:51", "9/15/2015 12:55:40",
    "9/15/2015 14:45:39", "9/15/2015 14:58:01", "9/15/2015 20:42:41",
    "9/16/2015 8:16:15", "9/16/2015 12:55:40", "9/16/2015 15:34:39",
    "9/17/2015 13:34:14", "9/17/2015 16:15:00"
  )

我尝试了以下方法:

fasttime::fastPOSIXct(format(times))

但我得到了很多NAs:

structure(c(1425830593, 1425834193, 1425837398, 1425837449, 1425844375, 
           1428394727, 1425829676, 1425853436, 1428365261, 1428407183, 1431079941, 
           1431099221, 1433668126, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), class = c("POSIXct", "POSIXt"))    

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    这里有 2 个选项:

    使用base-R:

    as.POSIXct(times,format="%m/%d/%Y %H:%M:%S") ## this uses internally strptime
    

    或使用方便的lubridate 包:

    library(lubridate)
    parse_date_time(times,"mdYHMS")
    

    library(lubridate)
    mdy_hms(times)
    

    fastPOSIXct 是一个很好的选择,但我不认为它可以在这里使用(它假设数据具有一定的格式)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      相关资源
      最近更新 更多