我想计算投资组合几年的收益率,组合由若干股票组成,由于数据量较大,需要编写一个循环程序,以数据示意如下:

比如组合中有3只股票,

000001    2002-01    -0.140417

000001    2002-02    -0.036092

000001    2002-04    0.042602

000001    2002-05    -0.029575

000001    2002-06    0.344072

000011    2002-01    -0.254204

000011    2002-02    0.159159

000011    2002-03    0.124816

000011    2002-04    0.060411

000011    2002-05    -0.177914

000011    2002-06    0.230542

000017    2002-01    -0.317875

000017    2002-02    0.289665

000017    2002-03    0.328114

000017    2002-04    0.086754

000017    2002-06    0.125748

组合在t期收益率为三只股票t期收益的简单平均,如何编写一个r循环从而得到组合在2002年1月至6月的收益率? 难点在有些股票收益率在某个月份缺失,如000001在2002年03月份没数据,在这种情况下,求平均时按有数据的股票数平均。

可能比较麻烦,感谢!
假设上面三列的数据名称分别是:code, time, return



time<-as.factor(time)

tapply(return,time,mean,na.rm=TRUE)



不知道是不是你想要的
我验证了一下,完全正确。感谢!!