R中的strptime()将时间戳类从Posixct转换为字符

时间:2017-10-11 11:00:42

标签: r timestamp character posixct strptime

当我使用strptime()删除日期和时间时,它会将我的时间从课程POSIXct转换为character

> head(data)
           timestamps value
1 2017-10-01 00:00:00 8.424
2 2017-10-01 01:00:00 7.832
3 2017-10-01 02:00:00 6.320
4 2017-10-01 03:00:00 6.696
5 2017-10-01 04:00:00 5.448
6 2017-10-01 05:00:00 4.992

> data$time <- format(data$timestamps,"%H:%M:%S")
> str(data)
'data.frame':   226 obs. of  3 variables:
 $ timestamps: POSIXct, format: "2017-10-01 00:00:00" "2017-10-01 01:00:00" "2017-10-01 02:00:00" ...
 $ value     : num  8.42 7.83 6.32 6.7 5.45 ...
  

$ time : chr "00:00:00" "01:00:00" "02:00:00" "03:00:00" ...

您可以看到它将时间转换为character。如何使用同一个班级POSIXct剥离时间?

这个link here给出了如何将其转换为整数并单独使用小时,分钟值的方法。 我希望我的时间戳将其转换为Posixct和Not Integer 。另请阅读该链接中给出的行。如果您想对数据进行任何进一步操作,我建议不要这样做。但是,如果要绘制结果,可能会很方便。

这也不起作用:as.integer(format(Sys.time(), "%H%M%S"))

1 个答案:

答案 0 :(得分:0)

唯一可行的解​​决方案是将字符时间转换为POSIXlt对象(将附加当前日期)

n

或者,> strptime('10:12:00',format='%H:%M:%S') [1] "2017-10-11 10:12:00 IST" > class(strptime('10:12:00',format='%H:%M:%S')) [1] "POSIXlt" "POSIXt" > 分别提取小时,分钟,秒(作为整数)并玩弄它们!