R 中的加权滞后计算

  • 本文关键字:滞后 计算 加权
  • 更新时间 :
  • 英文 :


我有几个数据集(下面的简短示例)

> print(partOne)
 [1]  0.010966943 -0.006819522 -0.007189830  0.039736714  0.002013070
 [6] -0.043946666  0.003808415  0.199010991 -0.094001478 -0.053006526
[11] -0.051489992  0.019122283 -0.011215761  0.057408738 -0.020809564
[16] -0.041295915  0.010134001 -0.011398076
> print(part2)
 [1] 0.13070012 0.15793754 0.06980192 0.13270089 0.11384798 0.24417631
 [7] 0.10363273 0.09182783 0.12217490 0.47649356 0.33660955 0.23079863
[13] 0.21581061 0.13967763 0.05988797 0.28255164 0.16277804 0.12716975
[19] 0.19299641 0.21452418

我需要将每个 partOne 值加权为当前 part2 值除以 N 个前 part2 值的总和。

因此,对于上面的简短示例(每个数组中有 20 个值),伪代码将是:

  1. 跳到项目 N+1(例如,在本例中假设 N=10)
  2. 计算(第一部分[11]*第二部分[
  3. 11])/总和(第二部分[1->10])
  4. 增量 +1
  5. 计算(第一部分[12]
  6. *第二部分[12])/总和(第二部分[2->11])
  7. 等等。

试试这个

x[11:20]*y[11:20]/sapply(1:10,function(t) sum(y[t:(t+9)]))

数据

x <- rnorm(20)
y <- rnorm(20)