ラグが異なる複数の単変量回帰を実行するための小さな関数を作成しました。
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.grid
。longley
パッケージのデータセットを使用した再現可能な例は、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が見つからないだけです。