我使用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