我知道如何利用滯後的區別:功能的滯後資金
delX = diff(x)
但我知道只有這樣才能採取滯後總和:
sumY = apply(embed(c(0,y),2),1, sum)
是否有可以採取的函數滯後的總和?這種方式(或以其他方式滑動索引)不是很直觀。
我知道如何利用滯後的區別:功能的滯後資金
delX = diff(x)
但我知道只有這樣才能採取滯後總和:
sumY = apply(embed(c(0,y),2),1, sum)
是否有可以採取的函數滯後的總和?這種方式(或以其他方式滑動索引)不是很直觀。
您正在尋找filter
:
x <- 1:10
filter(x, filter=c(1,1), sides=1)
# [1] NA 3 5 7 9 11 13 15 17 19
你也可以使用head
和tail
:
head(x, -1) + tail(x, -1)
# [1] 3 5 7 9 11 13 15 17 19
'head'和'tail'函數看起來是最直觀的。謝謝。 –
兩個更多的選擇:
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
)。
我想,一個例子會很有幫助。 「滯後總和」的含義對我來說並不明顯。也許你只是想'嵌入'的東西'rowSums? – Frank
以下所有答案都很好,謝謝! –