それらをマージし、withを使用して逆方向に塗りつぶし、通常どおりサブセット化できます。na.locf
fromLast=TRUE
G$RET.Y <- yearlyReturn(Cl(GSPC))
G$RET.Y <- na.locf(G$RET.Y, fromLast=TRUE)
G$RET.Y[G$RET.M > 0.05]
# RET.Y
#2010-03-31 0.1100186233
#2010-07-30 0.1100186233
#2010-09-30 0.1100186233
#2010-12-31 0.1100186233
#2011-10-31 -0.0000318056
#2013-01-31 0.0643252302
または、インデックスを年の文字表現としてフォーマットすることもできます---format(index(G[G$RET.M > 0.05]), "%Y")
次に、それを使用して年次データをサブセット化するだけです。
do.call(rbind, lapply(format(index(G[G$RET.M > 0.05]), "%Y"), function(x) {
yearlyReturn(Cl(GSPC))[x]
}))
# yearly.returns
#2010-12-31 0.1100186233
#2010-12-31 0.1100186233
#2010-12-31 0.1100186233
#2010-12-31 0.1100186233
#2011-12-30 -0.0000318056
#2013-02-08 0.0643252302