"adf" <- function(x,k = 0, int = TRUE, trend = FALSE){ # NB: returns conventional lm summary so p-values for adf test are wrong! require(dynlm) dx <- diff(x) formula <- paste("dx ~ L(x)") if(k > 0) formula <- paste(formula," + L(dx,1:k)") if(trend){ s <- time(x) trend <- ts(s - s[1],start = s[1],freq = frequency(x)) formula <- paste(formula," + trend") } if(!int) formula <- paste(formula," - 1") summary(dynlm(as.formula(formula))) }