首页 > 解决方案 > 将日期从因子转换为日期,棘手的数据

问题描述

我有一个数据框,其中两个不同列中的日期和时间作为因素 -df$datedf$time. 我能够df$date从因子转换为日期格式。但是,该df$time列存在问题。有时采用 H:M:S 格式,而有些采用 HMS 格式。例如,第 1 行的时间为 02:30:15,而第 2 行的时间为 0345,第 3 行的时间可能类似于 094530。(缺少冒号)

#converting into posixct format
df$newtime <-as.POSIXct(df$time,format="%H: %M :%S")

但是,这会生成随机日期但时间正确,所以我曾经strptime删除年份月份和日期

df$newtime1 <- format(as.POSIXct(strptime(df$newtime,"%Y-%m-%d %H:%M:%S",tz="")) ,format = "%H:%M:%S")

这给了我以小时分钟和秒为单位的正确时间。但是它会生成一些 NA,因为某些时间行没有冒号(0345 而不是 03:45)

图像显示了我想要的输出

在此处输入图像描述

我希望所有时间都采用%H :%M :%S格式,即02:30:15, 03:45:00, 09:45:30

标签: rdateposixct

解决方案


推荐阅读