1

我编写了一个小函数来运行具有不同滞后的多个单变量回归:

f <- function(x,l) {
lm.obj <- dynlm(GNP~L(get(as.character(x)),l),
              data=longley)
names(lm.obj$coefficients)[2] <- paste(x,l,sep=".")
return(lm.obj)
}

mlply在使用 .创建可能的滞后变量组合的框架之后,这非常有效expand.gridlongley使用包中的数据集的可重现示例datasets如下所示:

data(longley)
require(plyr)
vars <- expand.grid(x=names(longley)[-c(1:3)],l=1:3)

regressionList <- mlply(vars,f, .progress= "text")
summaries <- lapply(regressionList,summary)

这工作得很好。但是现在我尝试使用 gls 做同样的事情。

require(nlme)

f.gls <- function(x,l) {
gls.obj <- gls(GNP~lag(get(as.character(x)),-l),
              data=longley)
names(gls.obj$coefficients)[2] <- paste(x,l,sep=".")
return(gls.obj)
}

但我得到的只是这个错误:

Error in eval(expr, envir, enclos) : object 'x' not found

我尝试使用debug(),但里面的一切似乎都一样。我也尝试在外面调用该函数,mlply但它不起作用。也尝试过没有滞后。只是找不到 x。

4

0 回答 0