我正在使用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
,但我不确定如何访问它。
答案 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>