簡體   English   中英

使用POSIXct時間序列R更改時區

[英]Changing time zones with POSIXct time series, R

我在使用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-05-13)獲取值:

df[ as.Date(df$Date) == Sys.Date(), ]

但是,當我這樣做時,我得到的數據以以下內容開頭:

2014-05-13 02:00:00

並不是:

2014-05-13 00:00:00

因為即時通訊目前處於CEST時間,因此比UTC時間晚兩個小時。 所以我嘗試更改數據:

df$Date <- as.POSIXct(df$Date, format = "%Y-%m-%d %H", tz = "Europe/Berlin")

但這行不通。 我嘗試了各種變體,例如將其剝離為字符,然后進行轉換等,但是我將頭撞在了牆上,我想我缺少了一些簡單的信息。

為避免使用像這樣的時區問題,請使用format獲取日期的字符表示形式:

df[format(df$Date,"%Y-%m-%d") == Sys.Date(), ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM