我有一个像这样的日期时间字符串:
> 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
。没问题,我很满意这个解决方案。感谢。
答案 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))
得出的绘图范围存在细微差别。