web-dev-qa-db-ja.com

Zooまたはxtsインデックスにアクセスする

Zooオブジェクトを使用しています。質問を購入すると、xtsオブジェクトにも適用されます。インデックス付きの1列のベクトルのように見えます。私の場合、インデックスは日付のベクトルであり、1列のベクトルは私のデータです。 (インデックスから)日付にアクセスしたいことを除いて、すべてが良好です。

たとえば、次の結果が得られます。

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変数またはベクトル内ですが、アクセス方法がわかりません。

23
feschet

_?zoo_のヘルプから、Zooオブジェクトのデータにアクセスするための2つの便利な方法があります。

  • 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
_
33
Andrie

一般に、attrが表示されている場合、これは、このデータがオブジェクトの 属性 であることを意味します。

attributes関数を使用すると、すべての属性をリストとしてダンプできるため、$を使用して特定の要素にアクセスできます。

attributes(ObjZoo)$index

attrを使用すると、名前で属性に直接アクセスできます。

attr(ObjZoo,"index")

実際、これはindexが行うことです。

> Zoo:::index.Zoo

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