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