0
我遇到了使用R中的時間序列&區域的問題,但我無法完全弄清楚如何繼續。使用POSIXct時間序列更改時區,R
我有一個這樣的時間序列數據:
df <- data.frame(
Date = seq(as.POSIXct("2014-01-01 00:00:00"), length.out = 1000, by = "hours"),
price = runif(1000, min = -10, max = 125),
wind = runif(1000, min = 0, max = 2500),
temp = runif(1000, min = - 10, max = 25)
)
現在,日期是UTC時間。我想子集/過濾數據,所以比如我今天得到的值(今天是2014年5月13日):
df[ as.Date(df$Date) == Sys.Date(), ]
然而,當我這樣做,我得到的開頭數據:
2014-05-13 02:00:00
而不是:
2014-05-13 00:00:00
因爲在CEST時間,這是UTC時間兩個小時後,目前的IM。所以我嘗試更改數據:
df$Date <- as.POSIXct(df$Date, format = "%Y-%m-%d %H", tz = "Europe/Berlin")
然而,這不起作用。我嘗試了各種各樣的變化,例如將其剝離爲字符,然後轉換等等,但是我已經將我的頭靠在牆上,並且我猜測這裏有一些簡單的缺失。
退房此線程:https://stat.ethz.ch/pipermail/r-help /2006-March/101179.html –
我試過閱讀這個鏈接和關於TZ的材料,但我仍然無法確定如何完全轉換這個系列。我能看到的是,它是依賴於系統的什麼工作?到目前爲止,我已經通過使用[This SO answer]中的'Sys.setenv(TZ ='GMT')'解決了它(http://stackoverflow.com/questions/6374874/how-to-change-the- default-timezone-in-r) – NoThanks
如何使用'df [format(df $ Date,「%Y-%m-%d」)== Sys.Date(),]' – James