我已计算出按月计算的输出,现在我想将平均每日回报合并到此输出中。
我的数据与此类似:
Df1
ID YMD R
1 20160101 1.01
1 20160103 1.02
2 20160101 .98
2 20160103 1.03
Df2
ID YM Rm
1 201601
2 201601
现在我想使用平均回报公式计算列Rm,这是月内回报乘积的第n个根。
我试过了,但是没有用:
df3 <- merge(df1, df2)
setDT(df3)[, Rm := (prod(df3$R)^(1/.N)), by = c(df3$ID, df$YM)]
编辑:
列Rm应该导致
Rm
(1.01*1.02)^(1/2)= 1.014987685
(0.98*1.03)^(1/2)= 1.004689007
然而,月份的日期(此处= 2)应该是可变的,因为整个时间序列中的天数不是恒定的