2016-09-07 10 views
1

私は次のデータセットがあるとします。Zooreg周波数警告

zooreg(return, order.by = date)

それは正しい出力を提供します。私はzoo/zooregオブジェクトに復帰arrayを変換するために、以下を使用

date <- structure(c(1986, 1986.08333333333, 1986.16666666667), class = "yearmon") 

return <- structure(c(0.000827577426231287, 0.00386371801344005, 0.00382634819565989 
), .Dim = 3L, .Dimnames = list(c("1986-01", "1986-02", "1986-03" 
))) 

を警告付き:

Jan 1986  Feb 1986  Mar 1986 
0.0008275774 0.0038637180 0.0038263482 

警告メッセージ:動物園で (データ、order.by、周波数): 「order.by」と「周波数」と一致しません:「周波数」無視

シリーズは、厳密に規則的であるとorder.byfrequencyは一致する必要がありますが、まだ警告が表示される理由を理解できませんでした。

+0

'years'は整数ではありません目的に – Christoph

+0

@Christophは何のことはない、それは結果がありませんということです株式報酬者の1日の平均値を月次値に換算します。 – athraa

答えて

1

は、ドキュメント(?yearmon)によると:

"yearmon" クラスは、月次データを表すために使用されます。内部的には、1月の場合は0を、2月の場合は1/12、3月の場合は2/12などのデータを保持します。

コール:

zooreg(return, order.by = date) 

Arguments::frequencyzooのドキュメントによると

zoo(return, order.by = date, frequency = 1) 

を呼び出すことと同じです

指定されている場合は、order.byとfrequencyが一致するかどうかがチェックされます。

警告です。警告を取り除くために、これらの両方がクラスzooregのオブジェクトを返します

z <- zooreg(return, order.by = date, frequency = 12) 

または

z <- zoo(return, order.by = date, frequency = 12) 

を使用します。ドキュメント(?zoo)による

str(z) 
‘zooreg’ series from Jan 1986 to Mar 1986 
    Data: Named num [1:3] 0.000828 0.003864 0.003826 
- attr(*, "names")= chr [1:3] "1986-01" "1986-02" "1986-03" 
    Index: Class 'yearmon' num [1:3] 1986 1986 1986 
    Frequency: 12 

T彼は「動物園」シリーズに追加の「頻度」属性(そのシリーズのインデックスに準拠している必要があります)を持つ「動物園」のサブクラスです。

私はこれがあなたの望むものだと信じています。

不一致の「注文」を呼び出すことに注意してください。

z <- zooreg(return, order.by = date) 

を使用「と 『周波数』であなただけのzooオブジェクトを取得する:。?

str(z) 
‘zoo’ series from Jan 1986 to Mar 1986 
    Data: Named num [1:3] 0.000828 0.003864 0.003826 
- attr(*, "names")= chr [1:3] "1986-01" "1986-02" "1986-03" 
    Index: Class 'yearmon' num [1:3] 1986 1986 1986