我有一个日期时间字符串,如下所示:
> mydatetime
[1] "2012-01-07 14:53:52 EST" "2012-01-07 07:57:03 EST"
[3] "2012-01-07 17:42:28 EST" "2012-01-08 10:28:35 EST"
[5] "2012-01-08 10:37:22 EST" "2012-01-09 08:12:00 EST"
[7] "2012-01-09 08:11:44 EST" "2012-01-09 17:45:24 EST"
[9] "2012-01-09 14:28:22 EST" "2012-01-09 13:14:38 EST"
我想把日期和时间分成不同的对象。我可以成功获取日期为:
> as.Date(mydatetime)
[1] "2012-01-07" "2012-01-07" "2012-01-07" "2012-01-09" "2012-01-08"
[6] "2012-01-08" "2012-01-08" "2012-01-09" "2012-01-09" "2012-01-09"
如何提取时间部分?我的目标是在y轴上绘制日期,在x轴上绘制时间,以显示每天的时间。似乎plot函数需要特殊的格式,所以字符串在这里不起作用。任何关于时间轴式绘图功能的建议也将受到赞赏。谢谢
更新
Simon下面的回答对我有效。但是,我必须先从我的datetime中提取日期子字符串,然后使用as.date.
date <- as.Date(substr(mydatetime, 0,10))
由于某种原因,它休息了五个小时。例如,2012-01-09 19:05:21 EST
将转换为2012-01-10
。我的时区设置似乎很好,将该字符串放入.Date中直接得到2012-01-09
。没问题,我对这个解决方案很满意。谢谢
有几种方法——要么将其视为字符串:
time = as.POSIXct(substr(mydatetime, 12,19),format="%H:%M:%S")
plot(time, as.Date(mydatetime))
或者你根据日期计算:
time = .POSIXct(as.numeric(as.POSIXct(mydatetime)) %% 86400)
plot(time, as.Date(mydatetime))
由此产生的绘图范围存在细微差异。