如何为xts对象指定精确的index()

时间:2012-11-30 16:46:21

标签: r xts posixct

我想设置xts对象的具体日期,但它会将日期转移一天。

aapl <- as.xts(read.zoo(textConnection("

    2007-04-26, 98.84
    2007-04-27, 99.92
    2007-04-30, 99.80
    2007-05-01, 99.47
    2007-05-02, 100.39"), sep=","))

  idx_aapl <- index(aapl)

  idx_aapl

  xts:::index.xts(aapl)  # makes no difference

  idx_aapl <- idx_aapl + 1

  idx_aapl

如何指定显示的具体日期?我已经阅读了有关posixct的内容,但我不知道如何将其分配给索引。

1 个答案:

答案 0 :(得分:1)

您需要指定时区。 E.g。

aapl <- as.xts(read.zoo(textConnection("
    2007-04-26, 98.84
    2007-04-27, 99.92
    2007-04-30, 99.80
    2007-05-01, 99.47
    2007-05-02, 100.39"), sep=",", tz="UTC"))

这是因为日期戳是POSIXct,这意味着它们也有时间组件。

解决问题的另一种方法是应用全球时区。例如。将它放在现有脚本的顶部,也可以很好地加载数据:

Sys.setenv(TZ = "UTC")
library(xts)
...