我使用library(lubridate)中的parse_date_time函数将时间序列引入R,并将其作为EST带入。转换时间序列内的时区
streamflowDateTime<-parse_date_time(streamflowDateTime,"%m%d%Y %H%M",tz="EST")
但是,数据在04-03-2005 01:45经历了DST,下一个时间步是03:00。我想通过减去一个小时来将这个事件和所有时间戳转换为EST,以便它是连续的。如果有一种自动化的方式来执行此操作,那么程序会计算出DST开始发生的位置并自动返回一个小时,因为DST不会在同一天每一天同时生效。
这里的数据样本
structure(c(1112475600, 1112476500, 1112477400, 1112478300, 1112479200,
1112480100, 1112481000, 1112481900, 1112482800, 1112483700, 1112484600,
1112485500, 1112486400, 1112487300, 1112488200, 1112489100, 1112490000,
1112490900, 1112491800, 1112492700, 1112493600, 1112494500, 1112495400,
1112496300, 1112497200, 1112498100, 1112499000, 1112499900, 1112500800,
1112501700, 1112502600, 1112503500, 1112504400, 1112505300, 1112506200,
1112507100, 1112508000, 1112508900, 1112509800, 1112510700, 1112515200,
1112516100, 1112517000, 1112517900, 1112518800, 1112519700, 1112520600,
1112521500, 1112522400, 1112523300, 1112524200, 1112525100, 1112526000,
1112526900, 1112527800, 1112528700, 1112529600, 1112530500, 1112531400,
1112532300, 1112533200, 1112534100, 1112535000, 1112535900, 1112536800,
1112537700, 1112538600, 1112539500, 1112540400, 1112541300, 1112542200,
1112543100, 1112544000, 1112544900, 1112545800, 1112546700, 1112547600,
1112548500, 1112549400, 1112550300, 1112551200, 1112552100, 1112553000,
1112553900, 1112554800, 1112555700, 1112556600, 1112557500, 1112558400,
1112559300, 1112560200, 1112561100, 1112562000, 1112562900, 1112563800,
1112564700, 1112565600, 1112566500, 1112567400, 1112568300, 1112569200
), class = c("POSIXct", "POSIXt"), tzone = "EST")
编辑:
streamflowDateTime[8840:length(streamflowDateTime)] <- streamflowDateTime[8840:length(streamflowDateTime)]-hours(1)
在全整个数据集,的发生发生在位置8840,这是我手工知道,我想要的代码自动找到两个连续时间戳之间的时间差不是15分钟的位置,并用该自动值替换代码中的'8840'。 for循环太慢
你可以发布你的原始输入'streamflowDateTime'(之前调用'parse_Date_time')吗? – nrussell 2015-02-05 17:05:36
这是一个长度为35034个元素的数据集我不知道如何在这里发布 – Saadat 2015-02-05 18:46:31
另外,我阅读了之前发布的解决方案。它不工作,因为它将整个数据集转换为EST。基本上,如果我将数据作为EDT带入数据库,然后找到DST开始发生的位置,并将所有数据从该点向前转换为EST,我认为这会有所帮助! – Saadat 2015-02-05 18:48:38