当我使用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"))
答案 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"
>
分别提取小时,分钟,秒(作为整数)并玩弄它们!