4

重複する時系列の多くの演算子では、結果が重複部分に対してのみ与えられることを観察しました。これは素晴らしいことです。

> (ts1 <- ts(1:5, start=1, freq=3))
Time Series:
Start = c(1, 1) 
End = c(2, 2) 
Frequency = 3 
[1] 1 2 3 4 5
> (ts2 <- ts((7:3)^2, start=2, freq=3))
Time Series:
Start = c(2, 1) 
End = c(3, 2) 
Frequency = 3 
[1] 49 36 25 16  9
> ts1 + ts2
Time Series:
Start = c(2, 1) 
End = c(2, 2) 
Frequency = 3 
[1] 53 41

しかし、これは の場合には当てはまらないようですcbind()。出力が適切に配置されている間、NA重複しないデータに対して が作成されます。

> (mts <- cbind(ts1, ts2))
Time Series:
Start = c(1, 1) 
End = c(3, 2) 
Frequency = 3 
         ts1 ts2
1.000000   1  NA
1.333333   2  NA
1.666667   3  NA
2.000000   4  49
2.333333   5  36
2.666667  NA  25
3.000000  NA  16
3.333333  NA   9

cbind()行を作成せずにそれを実行する方法はありNAますか? NAまたは、そうでない場合、結果を取得して行をsで取り除く良い方法は何ですか? 時系列の性質が失われるため、添え字を付けるという単純な問題ではありません。

> mts[complete.cases(mts),]
     ts1 ts2
[1,]   4  49
[2,]   5  36

たぶんwindow()、ウィンドウの開始時間と終了時間を計算するのは少し面倒です。どんなアドバイスでも大歓迎です。

4

1 に答える 1

4

なぜna.omit結果だけではないのですか?

> na.omit(cbind(ts1,ts2))
Time Series:
Start = c(2, 1) 
End = c(2, 2) 
Frequency = 3 
         ts1 ts2
2.000000   4  49
2.333333   5  36

を避けたい場合は、引数を持つ をna.omit呼び出しstats:::cbind.tsます。それを設定して直接呼び出すことができます(適切な引数を作成した後):stats:::.cbind.tsunionFALSEstats:::.cbind.ts

> stats:::.cbind.ts(list(ts1,ts2),list('ts1','ts2'),union=FALSE)
Time Series:
Start = c(2, 1) 
End = c(2, 2) 
Frequency = 3 
         ts1 ts2
2.000000   4  49
2.333333   5  36

しかし、na.omit解決策は少し簡単に思えます。;-)

于 2012-07-19T20:04:54.283 に答える