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