25

我正在使用动物园对象,购买我的问题也适用于 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一个变量或一个向量,但我不知道如何访问它。

4

2 回答 2

35

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

  • coredata()返回 zoo 对象中的数据
  • 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
于 2011-06-24T08:33:53.360 回答
9

通常,当您看到 时attr,这意味着该数据是对象的属性

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

attributes(ObjZoo)$index

attr使您可以通过名称直接访问属性:

attr(ObjZoo,"index")

事实上,这就是这样index做的:

> zoo:::index.zoo

function (x, ...) 
{
    attr(x, "index")
}
<environment: namespace:zoo>
于 2011-06-24T09:31:48.250 回答