访问zoo或xts索引

时间:2011-06-24 08:27:35

标签: r xts zoo

我正在使用zoo对象,购买我的问题也适用于xts对象。它看起来像是一个带有索引的单列向量。在我的例子中,索引是日期的向量,而一列向量是我的数据。一切都很好,除了我想访问日期(从索引)。

例如,我有以下结果:

ObjZoo <- structure(c(10, 20), .Dim = c(2L, 1L), index = c(14788, 14789),
                    class = "zoo", .Dimnames = list(NULL, "Data"))
unclass(ObjZoo)
#      Data
# [1,]   10
# [2,]   20
# attr(,"index")
# [1] 14788 14789

我想在变量或向量中获取14789,但我不确定如何访问它。

2 个答案:

答案 0 :(得分:32)

?zoo的帮助中,有两种便捷方法可以访问zoo对象中的数据:

  • coredata()返回动物园对象中的数据
  • index()返回索引

例如:

x.Date <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1
x <- zoo(rnorm(5), x.Date)

index(x)
[1] "2003-02-01" "2003-02-03" "2003-02-07" "2003-02-09" "2003-02-14"

coredata(x)
[1] -1.2487943  0.8911630  1.2713133 -0.1024638  0.2989194

答案 1 :(得分:9)

通常,当您看到attr时,这意味着此数据是对象的attribute

attributes函数可用于将所有属性转储为列表,因此您可以使用$访问某些元素:

attributes(ObjZoo)$index

attr可让您通过名称直接访问该属性:

attr(ObjZoo,"index")

实际上这就是index的作用:

> zoo:::index.zoo

function (x, ...) 
{
    attr(x, "index")
}
<environment: namespace:zoo>