2017-04-17 7 views
0

私は、2つの不規則な時系列に対してvlookupの同等の処理を実行しようとしています。2つの不規則な時系列をマージする

DAILY頻度を持つ1つの動物園オブジェクトは、各列の統計のランクを保持します。

> head(sdRANK.z); dim(sdRANK.z) 
      B1 WTI1 NG1 HO1 RB1 W1 SB1 CO1 C1 S1 LU1 CT1 LE1 SM1 KC1 BO1 LC1 FC1 HG1 GC1 SI1 
2011-02-28 9 8 7 11 15 6 1 10 5 18 4 2 13 17 12 16 19 20 14 21 3 
2011-03-01 9 8 7 11 14 6 1 10 5 18 4 2 13 17 12 16 19 20 15 21 3 
2011-03-02 9 7 8 12 14 6 3 10 5 18 4 1 13 17 11 16 19 20 15 21 2 
2011-03-03 9 8 7 12 15 6 1 10 5 18 4 2 13 17 11 16 19 20 14 21 3 
2011-03-04 9 8 7 12 15 6 1 10 5 18 4 2 13 17 11 16 19 20 14 21 3 
2011-03-07 9 8 7 12 15 6 1 11 5 18 4 2 13 17 10 16 19 20 14 21 3 
[1] 633 21 
> 

月次の頻度を持つ2番目の動物園オブジェクトは、その行の各月の最後の曜日を持っています。この行列の列には現在、0が設定されています。

> head(volMAT.z); dim(volMAT.z) 
      B1 WTI1 NG1 HO1 RB1 W1 SB1 CO1 C1 S1 LU1 CT1 LE1 SM1 KC1 
2011-02-28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
2011-03-31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
2011-04-29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
2011-05-31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
2011-06-30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
2011-07-29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
      BO1 LC1 FC1 HG1 GC1 SI1 
2011-02-28 0 0 0 0 0 0 
2011-03-31 0 0 0 0 0 0 
2011-04-29 0 0 0 0 0 0 
2011-05-31 0 0 0 0 0 0 
2011-06-30 0 0 0 0 0 0 
2011-07-29 0 0 0 0 0 0 
[1] 30 21 

私は「近似」見上げるとExcelのVLOOKUP関数に似た結果に毎月のデータセットに毎日データセットからランキングをマージする探しています。これは、おおよそのマッチが常に月末前に起こった最も近い値であることを意味します。だから、最終的に行列の最初の行は次のようになります。

2011-03-01 9 8 7 11 14 6 1 10 5 18 4 2 13 17 12 16 19 20 15 21 3 

私はあまり進展なしマージとmerge.zooの様々な組み合わせを試して数日を過ごす持っています。どんな助けでも大歓迎です。

ありがとう、幸せなイースターサンデー!

+0

[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)と質問の意図する出力を入力してください。 –

+0

'data.table'パッケージのローリングジョインは、あなたが必要とするものかもしれません。 [ここに短いチュートリアルです](https://r-norberg.blogspot.com/2016/06/understanding-datatable-rolling-joins.html)。 – eipi10

+0

@ eipi10そのチュートリアルは私の頭の上にあります。ケアは少し拡大する?ありがとう。 – darius

答えて

0

SOLVED !!

y=as.timeSeries(sdMAT.z) 
y2=daily2monthly(y) 

2行のコードと4日間の苦労!!