用于绘图的单独日期时间字符串

时间:2012-01-10 14:51:01

标签: r date time plot

我有一个像这样的日期时间字符串:

> 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轴上绘制时间,以显示每天的时间。似乎绘图函数需要特殊格式,因此字符串在这里不起作用。任何关于时间线式绘图功能的建议也受到赞赏。谢谢!

更新

西蒙在下面的回答对我有用。但是,我必须先从mydatetime拉出日期子字符串,然后使用as.Date。

date <- as.Date(substr(mydatetime, 0,10))

出于某种原因,这是五个小时的休息时间。例如,2012-01-09 19:05:21 EST将转换为2012-01-10。我的时区设置似乎很好,并将该字符串放入as.Date直接给了2012-01-09。没问题,我很满意这个解决方案。感谢。

1 个答案:

答案 0 :(得分:3)

有几种方法 - 要么将其视为字符串:

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

得出的绘图范围存在细微差别。