我需要一个函数来计算2个变量之间的差异,而不是它在其中一个变量的1个滞后期间的变化。公式看起来像这样:
有没有简单的方法可以在不使用更复杂的循环的情况下实现这一目标?我使用vm.$watch('a', newVal => this.myMethod()))
函数对一个向量进行常规百分比更改,如下所示:
diff
编辑此函数或示例有没有简单的方法?
答案 0 :(得分:2)
构建此方法的简单,矢量化方法是使用dplyr
。您可以使用lead
或lag
函数。
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