xts对象上的cumprod - 跳过值为0的行

时间:2015-11-10 09:23:04

标签: r xts

我有一个股票的xts对象。现在我已使用quantmod::dailyReturn()函数添加了每日回报。我现在想要添加累积产品列,但由于我的数据集的某些返回天数将为0,累积产品必须跳过这些行,如何才能有效地实现这一目标?

我最好不要切片数据或过滤数据。

我的数据

            dailyChange    Return
2009-06-02 -0.027295285 -0.027295285
2009-06-03 -0.012755102 -0.012755102
2009-06-04  0.012919897  0.012919897
2009-06-05  0.022959184  0.022959184
2009-06-08 -0.007481297 -0.007481297
2009-06-09  0.027638191  0.027638191
2009-06-10  0.012224939  0.012224939
2009-06-11  0.043478261  0.043478261
2009-06-12  0.011574074  0.011574074
2009-06-15 -0.048054920 -0.048054920
2009-06-16 -0.012019231 -0.012019231
2009-06-17 -0.036496350 -0.036496350
2009-06-18  0.010101010  0.010101010
2009-06-19  0.000000000  0.000000000
2009-06-22 -0.055000000  0.000000000
2009-06-23  0.031746032  0.000000000
2009-06-24  0.046153846  0.046153846
2009-06-25  0.009803922  0.009803922

1 个答案:

答案 0 :(得分:0)

尝试

xt1$CumProd <-0
xt1$CumProd[xt1[,2]!=0] <- cumprod(xt1[,2][xt1[,2]!=0])