R语言里面的lag()和diff()函数

时间:2021-11-21 01:31:37

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))),来增加一个向量单元