我有一个每日数据的数据框,如下所示:
Date bhpau_o bhpau_c_1d bhpau_l bbl_o bbl_c_1d bbl_l blt_o blt_c_1d
2007-01-01 19.89669 19.93834 19.94399 18.585 18.585 18.600 18.28723 18.39005
2007-01-02 20.17571 19.94399 20.32699 18.585 18.585 18.600 18.59225 18.28723
2007-01-03 20.42895 20.32699 20.15213 18.510 18.600 18.080 18.62441 18.98699
2007-01-04 19.45845 20.15213 19.15969 17.525 18.080 17.450 17.75146 18.19537
2007-01-05 18.79020 19.15969 18.82920 17.445 17.450 17.275 17.26992 17.49870
2007-01-08 18.67068 18.82920 18.63943 17.380 17.275 17.355 17.09140 17.05766
2007-01-09 18.78240 18.63943 19.26600 17.405 17.355 17.540 17.50670 17.23673
2007-01-10 18.80098 19.26600 18.65337 17.350 17.540 17.500 17.08860 17.22542
2007-01-11 19.06616 18.65337 19.23807 17.830 17.500 18.200 17.58981 17.13693
2007-01-12 19.62668 19.23807 19.66585 17.950 18.200 18.330 18.12275 18.08571
2007-01-15 19.74896 19.66585 19.79600 17.950 18.200 18.330 18.26427 18.06403
我想做的是对数据集的子集应用计算。具体来说,我希望进行以下计算:
计算 bbl 每日隔夜收益的绝对值 (bbl_l-bbl_o)
以 10 天为周期计算此类绝对值的总和(在步骤 1 中获得)
计算每个隔夜收益的权重
计算 bhpau 的隔夜收益 (bhpau_l-bhpau_o) 然后除以 bbl 的隔夜收益(在步骤 1 中获得的非绝对值)
将权重(从第 3 步获得)乘以第 4 步的值
总结每 10 天的产品(从第 5 步开始)
我用来计算 WPC 的代码如下所示。但是,它们仅用于计算合并的 WPC。
##calculating WPC
WF1 = abs(data$bbl_l-data$bbl_o)/sum(abs(data$bbl_l-data$bbl_o))
CON1 = (data$bhpau_o-data$bhpau_c_1d)/(data$bbl_l-data$bbl_o)
WPC1 = sum(WF1*CON1)
如何循环函数并每 10 天获取一次 WPC?我试过rollapply
了,但它以错误消息告终。任何帮助将不胜感激。