滞后和的函数

时间:2015-12-02 16:26:18

标签: r

我知道如何处理滞后的差异:

delX = diff(x)

但我知道采用滞后总和的唯一方法是:

sumY = apply(embed(c(0,y),2),1, sum)

是否有可以采用滞后总和的函数?这种方式(或以其他方式滑动索引)不是很直观。

2 个答案:

答案 0 :(得分:3)

您正在寻找filter

x <- 1:10
filter(x, filter=c(1,1), sides=1)
# [1] NA  3  5  7  9 11 13 15 17 19

您还可以使用headtail

head(x, -1) + tail(x, -1)
# [1]  3  5  7  9 11 13 15 17 19

答案 1 :(得分:0)

还有两个选择:

x <- 1:10
x + dplyr::lag(x)
# [1] NA  3  5  7  9 11 13 15 17 19
x + data.table::shift(x)
# [1] NA  3  5  7  9 11 13 15 17 19

请注意,您可以轻松更改两个功能中的延迟次数。您也可以使用dplyr::lead()data.table::shift(x, 1L, type = "lead")创建一个主要向量,而不是滞后。这两个函数还允许您指定默认值(默认为NA)。