2011-06-10 10 views
2

2つの不規則な時系列(営業日をカバーする)を追加する必要があります。不規則xtsの前にゼロを付けます

私は2つの異なる製品のシリーズA + Bの

製品BはA.

より後のスタートアップ日からのデータを持っている私は日付が一致したように、Bを付加する必要があると思う2 XTSを持っていますAが、すべて0である。

和(A + B)の合計(A)+ SUM(B)

商品

2009-05-02 4 
2010-02-03 4 

製品B

2010-02-03 4 

合計に等しくなるように:

この方法だ10
A + B 
2010-02-03 8 

望ましい結果

2009-05-02 4 
2010-02-03 8 
+1

サンプルデータを投稿していただけますか?素晴らしい質問を書くヒントについては、http://stackoverflow.com/q/5963269/602276を参照してください。 – Andrie

答えて

4

library(xts) 

拳銃にはいくつかのサンプルデータが必要です。 (共通の)行名、mergeを2つの作成したデータセットをリンクするに基づき

proda <- as.xts(matrix(c(4,4), ncol = 1, dimnames = list(c("2009-05-02", "2010-02-03")))) 
prodb <- as.xts(matrix(4, ncol = 1, dimnames = list(c("2010-02-03")))) 

ab <- merge(proda, prodb) 

I各行(MARGIN = 1)あたりの値を合計するapplyを使用するが、rowSumsも機能するであろう。

data.frame(val = apply(X = ab, MARGIN = 1, FUN = sum, na.rm = TRUE)) 

結果:

  val 
2009-05-02 4 
2010-02-03 8 
+1

明確化の1つのポイント: 'merge.xts'は(merge.data.frame'のような)行属性ではなく、インデックス属性にマージします。 –

4

ここで(ローマのサンプルデータ@使用)ワンライナーです:デフォルトとfill=引数が指定することができますよう

with(merge(proda,prodb,fill=0), proda+prodb) 
#   proda 
# 2009-05-02  4 
# 2010-02-03  8 

merge.xtsall=TRUEを持っています欠落要素に使用される値(デフォルトはfill=NA

merge(proda,prodb,fill=0)の結果は、merge.xtsに渡されたオブジェクトのすべてのインデックス値の2つの列( "proda"、 "prodb")とインデックス値を持つオブジェクトです。

関連する問題