r-绘图的单独日期时间字符串



我有一个日期时间字符串,如下所示:

> 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))

由此产生的绘图范围存在细微差异。

最新更新