[R] lag operator on a zoo object - code sharing

jpm miao miaojpm at gmail.com
Wed Oct 15 11:00:22 CEST 2014


Hi,
   I could not find a nice lag operator on zoo object. Perhaps there is,
but I just couldn't find it. Basically I want the operator to return the
lagged zoo object (with one or more variables ) with the original date. For
example, if I write lag(x, -3), then I got the lagged series, but the first
three observations are deleted. My code could work, but is not polished.
Someone helps or comments?


lagzoo<-function(x, lag_n)
{

  if(is.zoo(x)==FALSE)
  {
    stop("zoo objects for lagzoo, please")
  }
  if(ncol(x)==1)
  {
    y<-x
  t<-time(x)
  n<-length(t)

  y[(lag_n+1):n]<-x[1:(n-lag_n)]
  y[1:lag_n]<-NA
  return(y)
  }
  else
  {
    y<-x
    n<-nrow(x)
    y[(lag_n+1):n,]<-x[1:(n-lag_n),]
    y[1:lag_n,]<-NA
    return(y)
  }
}

	[[alternative HTML version deleted]]



More information about the R-help mailing list