4
,我有以下的数据帧:与NA的累积收益中的R
df <- data.frame(Return1=c(NA, NA, .03, .04, .05),
Return2=c(.25, .33, NA, .045, .90),
Return3=c(.04, .073, .08, .04, .01))
Return1 Return2 Return3
1 NA 0.250 0.040
2 NA 0.330 0.073
3 0.03 NA 0.080
4 0.04 0.045 0.040
5 0.05 0.900 0.010
我想计算的累计收益,但在数据帧的缺失值。我用:
cumprod(df+1)-1
获取结果
Return1 Return2 Return3
1 NA 0.2500 0.0400000
2 NA 0.6625 0.1159200
3 NA NA 0.2051936
4 NA NA 0.2534013
5 NA NA 0.2659354
这里的问题是,如果有一个NA,后续行上下将有一个结果NA。有没有一种方法可以计算累计回报,而不影响下面其余行的NA?
我想获得的结果:
Return1 Return2 Return3
1 NA 0.2500 0.0400000
2 NA 0.6625 0.1159200
3 0.03 NA 0.2051936
4 0.07120 0.7373 0.2534013
5 0.12476 2.3008 0.2659354
我知道在PerformanceAnalytics呼包Return.cumulative功能的,但这只会获得所有列的累计收益率。
任何想法?
我正在尝试使用'na.omit'方法,但这个非常好。 (+1) – 2014-08-29 19:14:05
如何将其移植到C代码? RunSum的[xts源代码中的一些基础知识,处理主要的NAs](https://github.com/R-Finance/xts/search?utf8=%E2%9C%93&q=firstNonNA)。有兴趣在C编写runProd。任何指导@JoshuaUlrich? – 2014-11-17 12:36:11