我有一个数据框df,它的日期因子变量的格式如下:
2015-12-15 10:00:00
2015-12-19 12:00:00
2015-12-20 20:00:00
它是每小时数据。在午夜00:00:00时出现问题,因为它没有出现在小时中。它只是说:
21/12/2015
因此,正如您所看到的,它只表示日期,而没有小时。
因此,我使用strptime使用以下命令将其转换为日期格式:
df$date <- strptime(df$date,"%d/%m/%Y %H:%M")
所有时间和日期都可以正常工作,午夜00:00:00的任何一天除外,它返回:
NA
我一直在寻找StackOverflow和其他论坛上的以前的帖子,对此我会非常感激,但是我还没有设法解决这个特定问题的解决方案。
最佳答案
从R的strptime文档(添加了重点):
格式
字符串。如果任何元素的时间分量不是午夜,则格式方法的默认值为“%Y-%m-%d%H:%M:%S”,否则为“%Y-%m-%d”。如果设置了options(“ digits.secs”),则最多可打印指定数目的数字,持续几秒钟。
因此信息仍然存在,您只需要format
即可将其与时间分量一起打印出来。
> midnight <- strptime("2015-12-19 00:00:00","%Y-%m-%d %H:%M")
> midnight
[1] "2015-12-19 EST"
> format(midnight,"%Y/%m/%d %H:%M")
[1] "2015/12/19 00:00"
关于r - 如何在R中使用strptime()保持午夜(00:00h)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089536/