这可能是一个时区问题。您的索引是yearmon
,它没有时区。但是你的xts对象可能有一个非UTC时区,这会导致转换问题。例如,该XTS对象有我的本地时区,所以子集可以作为你的描述:
VIXCLS <- structure(c(20.97, 13.34, 15.29, 14.55, 13.84, 18.23, 12.12, 28.43, 24.5,
15.07, 16.13, 18.21, 27.59), .Dim = c(13L, 1L), index = structure(c(1420070400,
1422748800, 1425168000, 1427846400, 1430438400, 1433116800, 1435708800,
1438387200, 1441065600, 1443657600, 1446336000, 1448928000, 1451606400),
tzone = "", tclass = "yearmon"), class = c("xts", "zoo"),
.indexCLASS = "yearmon", tclass = "yearmon", .indexTZ = "", tzone = "")
VIXCLS['2015/']
# [,1]
# Feb 2015 13.34
# Mar 2015 15.29
# Apr 2015 14.55
# May 2015 13.84
# Jun 2015 18.23
# Jul 2015 12.12
# Aug 2015 28.43
# Sep 2015 24.50
# Oct 2015 15.07
# Nov 2015 16.13
# Dec 2015 18.21
# Jan 2016 27.59
但如果我设置indexTZ
到"UTC"
,问题消失:
indexTZ(VIXCLS) <- "UTC"
VIXCLS['2015/']
# [,1]
# Jan 2015 20.97
# Feb 2015 13.34
# Mar 2015 15.29
# Apr 2015 14.55
# May 2015 13.84
# Jun 2015 18.23
# Jul 2015 12.12
# Aug 2015 28.43
# Sep 2015 24.50
# Oct 2015 15.07
# Nov 2015 16.13
# Dec 2015 18.21
# Jan 2016 27.59
如果你得到有关对象时区的警告与当地时区不同,您可以使用options(xts_check_TZ=FALSE)
将其禁止。
还要注意,这是在xts on GitHub的开发版本中更正的。没有时区属性的索引类不允许有非UTC时区。
请发布您的数据或样本的“dput”。这将保留格式和属性。 – 2016-01-22 03:09:18
......看到:如何创建一个最小的,完整的,并且可验证的示例](http://stackoverflow.com/help/mcve)。 –