与2个向量的滞后差异

时间:2017-08-20 16:00:11

标签: r

我需要一个函数来计算2个变量之间的差异,而不是它在其中一个变量的1个滞后期间的变化。公式看起来像这样:

enter image description here

有没有简单的方法可以在不使用更复杂的循环的情况下实现这一目标?我使用vm.$watch('a', newVal => this.myMethod()))函数对一个向量进行常规百分比更改,如下所示:

diff

编辑此函数或示例有没有简单的方法?

1 个答案:

答案 0 :(得分:2)

构建此方法的简单,矢量化方法是使用dplyr。您可以使用leadlag函数。

vec1 <- seq(1,10)
vec2 <- seq(5,24,2)

library(dplyr)

df1 <- data.frame(vec1, vec2, lag_diff=((lead(vec1)-lead(vec2))/vec2))

df1
   vec1 vec2   lag_diff
1     1    5 -1.0000000
2     2    7 -0.8571429
3     3    9 -0.7777778
4     4   11 -0.7272727
5     5   13 -0.6923077
6     6   15 -0.6666667
7     7   17 -0.6470588
8     8   19 -0.6315789
9     9   21 -0.6190476
10   10   23         NA