1. 程式人生 > >R語言裡面的lag()和diff()函式

R語言裡面的lag()和diff()函式

R裡面的LAG只適用於時間序列,不適合於dataframe或者向量,因此需要自己寫一個小小的函式來實現lag的功能。
lagdf <- function(x, k) {
    c(rep(NA, k), x)[1 : length(x)]
}
y<-lagdf(x,2)
cbind(x,y)

R 裡面的diff()函式倒是支援數值向量

另外一種常用的計算lag()的方法

log.yahoo <- log(yhoo.close[-1]/yhoo.close[-length(yhoo.close])

如果直接使用diff(log(data$close))會報錯,是因為由於差分,向量的長度縮小了一個,需要採用

c(NA, diff(log(data))),來增加一個向量單元