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