R strptime当量用于mutate内格式=“%Y%m%d%H%M%S”

时间:2017-04-10 20:17:20

标签: r dplyr strptime

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

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

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

  

错误:mutate不支持POSIXlt结果

在变异之外,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

1 个答案:

答案 0 :(得分:3)

只需将POSIXlt data.type转换为POSIXct

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

请参阅this github issue