[R] Error in calling stepAIC() from within a function
Siew Leng TENG
siewlengteng at yahoo.com
Mon Aug 4 08:00:07 CEST 2003
Hi,
I am experiencing a baffling behaviour of stepAIC(),
and I hope to get any advice/help on what went wrong
or I'd missed. I greatly appreciate any advice given.
I am using stepAIC() to, say, select a model via
stepwise selection method.
R Version : 1.7.1
Windows ME
Many thanks and best regards,
Siew-Leng
***Issue :
When stepAIC() is placed within a function, it seems
that stepAIC() cannot detect the data matrix, and
the
program is halted as a result. However, when the
same
codes are copied, paste and run in R workspace,
stepAIC can execute and R is able to produce the
desired output.
***Actions taken :
I had tried to look into and manipulate environments
and formals(f), but with not much luck.
***Code snippets (an example):
library(MASS)
library(nls)
Data<-data.frame(matrix(rnorm(120),ncol=6))
colnames(Data)<-c("Y",paste("X",1:5,sep=""))
f<-function(A)
{
a <-glm(Y~X1+X2+X3, data=A)
b
<-stepAIC(a,scope=list(upper=~X1+X2+X3+X4+X5,lower=~1),direction="both",trace=FALSE)
b
}
f(Data)
R gives the following error :
> f(Data)
Error in model.frame.default(formula = Y ~ X1 + X3,
data = A, drop.unused.levels = TRUE) :
Object "A" not found
However, when the same codes are copied, paste and
run
in the workspace, stepAIC() can run, and R is able
to
produce the desired output :
A <- Data
a <-glm(Y~X1+X2+X3, data=A)
b
<-stepAIC(a,scope=list(upper=~X1+X2+X3+X4+X5,lower=~1),direction="both",trace=FALSE)
b
> b
> Call: glm(formula = Y ~ X4, data = A)
>
> Coefficients:
> (Intercept) X4
> 0.1942 -0.3314
>
> Degrees of Freedom: 19 Total (i.e. Null); 18
> Residual
> Null Deviance: 20.51
> Residual Deviance: 17.95 AIC: 60.6
> >
__________________________________
Yahoo! SiteBuilder - Free, easy-to-use web site design software
More information about the R-help
mailing list