2011-06-24 7 views
21

私は動物園のオブジェクトを使用しています、私の質問を購入するxtsオブジェクトにも適用されます。それはインデックスを持つ1列のベクトルのように私に見えます。私の場合、インデックスは日付のベクトルで、1つの列ベクトルはデータです。私は日付から(インデックスから)アクセスしたいのを除いて、すべてが良いです。動物園または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

ようこそSO、@feschet良いサンプルコードで素敵な質問。 +1 – Andrie

+0

ようこそ! Andrie'sが完全に合っていても、mbqの答えの追加の関連性を強調する関連スレッドがあります。 –

+3

*私はそれを探して何時間も過ごす*本当に?多分あなたはすばらしい動物園のビネットで始まったはずです。 –

答えて

25

?zooのヘルプからは、動物園のオブジェクト内のデータにアクセスするには、2つの便利なメソッドがあります。

  • 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 
+0

ありがとうたくさんのことがあります。 – feschet

+4

助けになるのはうれしいです。回答が参考になった場合は、それを承認済みとしてマークすることができます。 http://meta.stackexchange.com/q/5234/161858 – Andrie

+0

+1すてきな答え。 – mbq

9

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

attributes機能を使用すると、 $で特定の要素にアクセスできるように、リストとしてすべての属性をダンプするために使用することができ

attr(ObjZoo,"index") 

attributes(ObjZoo)$index 

attrはあなたにその名前を指定して属性に直接アクセスすることができます

実際にはこれはindexです。

> zoo:::index.zoo 

function (x, ...) 
{ 
    attr(x, "index") 
} 
<environment: namespace:zoo> 
関連する問題