On Wed, 15 Oct 2014, jpm miao wrote:

Hi,
  I could not find a nice lag operator on zoo object. Perhaps there is,
but I just couldn't find it.

See ?lag.zoo.

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.

Set na.pad = TRUE.

My code could work, but is not polished.

Yes, the ncol() does not work on vectors without dim and leads cannot be computed.

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]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to