【问题标题】:R strptime equivalent for use inside mutate with format="%Y%m%d%H%M%S" [duplicate]R strptime等效于在格式=“%Y%m%d%H%M%S”的mutate中使用[重复]
【发布时间】:2017-04-10 20:17:19
【问题描述】:

使用 R 版本 3.2.2,我正在尝试在以下代码中使用 mutate 以“%Y%m%d%H%M%S”(例如“20131227185208”)的形式读取时间戳:

library("dplyr")
df <- data_frame(DTHR_EVENT="20131227185208")
mutate(df, DTHR_EVENT = strptime(DTHR_EVENT, "%Y%m%d%H%M%S"))

...但这会产生以下错误:

错误:mutate 不支持POSIXlt 结果

在 mutate 之外,strptime 可以像这样正常工作:

> strptime("20131227185208", "%Y%m%d%H%M%S")
[1] "2013-12-27 18:52:08 EST"

但我需要将它与 mutate 一起应用,以便以一种方便的方式将列中的所有值转换为新值...如果您有比 mutate 更好的方法,我欢迎任何建议。

作为记录,我还尝试了以下替代方案,但每种方法都失败了:

df <- mutate(df, DTHR_EVENT = as.Date.POSIXlt(DTHR_EVENT, "%Y%m%d%H%M%S"))

错误:'x' 参数无效

df <- mutate(df, DTHR_EVENT = as.POSIXct(DTHR_EVENT, format="%Y%m%d%H%M%S", origin="EST5EDT"))
 ==> DTHR_EVENT all set to NA

【问题讨论】:

    标签: r dplyr strptime


    【解决方案1】:

    只需将POSIXlt data.type 转换为POSIXct

    mutate(df, DTHR_EVENT = as.POSIXct(strptime(DTHR_EVENT, "%Y%m%d%H%M%S")))
    

    this github issue

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2016-10-15
      • 1970-01-01
      相关资源
      最近更新 更多