質問
2つの不規則な時系列を追加する必要があります(営業日をカバー)。
2つの異なる製品A + B用の2つのXTSシリーズがあります。
製品Bには、Aより後のスタートアップ日からのデータがあります。
日付がAと一致するようにBeをプリデントする必要があると思いますが、すべてのゼロで。
合計(a + b)が合計(a) + sum(b)に等しい
製品a
2009-05-02 4
2010-02-03 4
製品b
2010-02-03 4
和:
A + B
2010-02-03 8
望ましい結果
2009-05-02 4
2010-02-03 8
解決
これはどうですか?
library(xts)
拳いくつかのサンプルデータが必要です。
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"))))
(一般的な)行名に基づいて、 merge
作成された2つのデータセットをリンクします。
ab <- merge(proda, prodb)
使った apply
各行ごとの値を合計する(MARGIN = 1
) しかし rowSums
また動作します。
data.frame(val = apply(X = ab, MARGIN = 1, FUN = sum, na.rm = TRUE))
結果:
val
2009-05-02 4
2010-02-03 8
他のヒント
これが1ライナーです( @Romanの例データを使用):
with(merge(proda,prodb,fill=0), proda+prodb)
# proda
# 2009-05-02 4
# 2010-02-03 8
merge.xts
もっている all=TRUE
デフォルトとして fill=
引数では、欠落要素に使用する値を指定できます(デフォルトは fill=NA
).
結果として merge(proda,prodb,fill=0)
2つの列( "proda"、 "prodb")を持つオブジェクトと、渡されたオブジェクトのすべてのインデックス値のインデックス値は merge.xts
.
所属していません StackOverflow