xts子集 - 夏令时

时间:2017-06-29 14:04:54

标签: r timezone subset xts

我正在尝试索引1分钟频率数据集的特定分钟。 (我一直使用'T ../ T ..',因为.indexmin有(/有?)一些problems with timezones.

以下两个xts对象具有相同的长度(nrow),没有重复,下面的子集应该返回零(凌晨2点没有遮挡)。一个工作,另一个不工作(返回所有的障碍)。我认为这与DST过渡有关(尽管两者都有EDT作为索引)。 Sys.timezone()也设置为EST5EDT。任何想法如何解决这一问题?

xcheck1 <- readRDS(gzcon(url("https://dl.dropboxusercontent.com/s/8yg9q854umipjna/xts_problem_1.rds"))) 
xcheck2 <- readRDS(gzcon(url("https://dl.dropboxusercontent.com/s/qm83b0ayz03appg/xts_problem_2.rds")))
xcheck1['T02:00/T02:00:10']
xcheck2['T02:00/T02:00:10']

1 个答案:

答案 0 :(得分:1)

它是a bug并且已在最新的CRAN版本(0.10-0)中得到修复。在两种情况下,它现在都会返回您所期望的(无)。

library(xts)
Sys.setenv(TZ = "EST5EDT")
urls <- paste0("https://dl.dropboxusercontent.com/s/",
               c("8yg9q854umipjna", "qm83b0ayz03appg"),
               "/xts_problem_", 1:2, ".rds")
xcheck1 <- readRDS(gzcon(url(urls[1])))
xcheck2 <- readRDS(gzcon(url(urls[2])))
xcheck1['T02:00/T02:00:10']
#      AUDUSD.ask.Close
xcheck2['T02:00/T02:00:10']
#      AUDUSD.ask.Close
packageVersion("xts")
# [1] '0.10.0'