下面是我的R代碼行爲怪異。我預計進入22:00的時間,但我得到23:00。as.POSIXct爲什麼要在我的時間加1小時?
as.POSIXct(chron(dates="01/04/06",times="22:00:00"),tz="CET")
[1] "2006-01-04 23:00:00 CET"
在我的代碼的下一行我使用的結果來選擇從XTS /動物園對象的窗口:因此只是忽略該錯誤並且不是輸入21:00(在上面),因爲它返回wasnt有用錯誤的數據。使用上面的代碼結果窗口返回正確的值。
head(qs<-as.zoo(window(Q,start=as.POSIXct(chron(dates="01/04/06",times="22:00:00"),tz="CET"),end=as.POSIXct(chron(dates="01/05/06",times="21:00:00"),tz="CET"))))
下面是一組樣本數據(Q
):
Stage.Qm Flow.Qm Stage.QmDB Flow.QmDB Stage.Q1000 Flow.Q1000 Stage.Q1000DB Flow.Q1000DB
2006-01-04 23:00:00 541.1589 5.636957 541.1592 5.646017 541.5708 20.44692 541.5708 20.44692
2006-01-04 23:01:00 541.1589 5.637268 541.1592 5.645087 541.5701 20.41321 541.5701 20.41321
2006-01-04 23:02:00 541.1589 5.638604 541.1588 5.635806 541.5701 20.40946 541.5701 20.40946
2006-01-04 23:03:00 541.1589 5.638979 541.1588 5.635694 541.5704 20.42712 541.5704 20.42712
2006-01-04 23:04:00 541.1589 5.639619 541.1590 5.640691 541.5710 20.45848 541.5710 20.45848
2006-01-04 23:05:00 541.1590 5.640662 541.1591 5.641682 541.5715 20.47893 541.5715 20.4789
你可以閱讀文檔:「目前實施代上的對象不處理時區,也沒有夏令時。」因此,解決方案是在這裏不使用'chron'。 – Roland
謝謝。我已經改爲'as.POSIXct(strptime(「2006-01-04 22:00:00,」%Y-%m-%d%H:%M:%S「)) '[1]「2006-01-04 22:00:00 CET」' – jjunju
1.你不需要'strptime'。 2.我建議始終明確設置時區。 3.隨時爲你的問題寫一個答案。 – Roland