From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>

Date: Thu 24 Aug 2006 - 03:12:53 EST

Date: Thu 24 Aug 2006 - 03:12:53 EST

[One thing you are leaving out is

On Wed, 23 Aug 2006, Mike Wolfgang wrote:

*> Thanks Bill and Simon. I wrote a simpler function to test and found out it
**> was stepAIC which causes error, and I still don't know how to solve it.
**> Check out this simple function:
**>
**>
**> myfun<-function(k){
**> xx<-mvrnorm(100,rep(0,10),diag(1,10),empirical=TRUE)
**> colnames(xx)<-paste("x",1:10,sep='')
**> py<-exp(sum(xx))/(1+exp(sum(xx)))
**> for (i in 1:k){
**> y<-rbinom(100,1,py)
**> mydata<-data.frame(cbind(y,xx))
**> y.glm<-glm(y~.,binomial,mydata)
**> cat("ok here.\n")
**> y.step<-stepAIC(y.glm,direction='both',trace=0)
**> cat("ok here.\n")
**> print(summary(y.step))
**> }
**> }
**>
**> myfun(10)
**>
**> only one "ok here" is printed.
**>
**> Mike
**>
**> On 8/22/06, Bill.Venables@csiro.au <Bill.Venables@csiro.au> wrote:
**> >
*

> > Mike Wolfgang asks:

*> >
**> > >
**> > > From: r-help-bounces@stat.math.ethz.ch
**> > [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Mike Wolfgang
**> > > Sent: Wednesday, 23 August 2006 1:31 PM
**> > > To: R-help list
**> > > Subject: [R] glm inside one self-defined function
**> > >
**> > > Hi list,
**> > >
**> > > I've searched in R-help and found some related discussions but still
**> > could
**> > > not understand this type of error. My own function is pretty complex,
**> > so I
**> > > would not put it here, but the basic algorithm is like this:
**> > > myfun<-function(k){
**> > > mydata<-...#by someway I create a data frame
**> > > mymodel<-glm(y~.,family=binomial(),data=mydata)
**> > > ...#some other stuff
**> > > }
**> >
**> > I think you are leaving out something. Here is a test of what you
**> > claim gives a problem (R 2.3.1, Windows):
**> >
**> > > myfun <- function(n) {
**> > + z <- rnorm(n)
**> > + mydata <- data.frame(x = z,
**> > + y = rbinom(n, size = 1, prob = exp(z)/(1+exp(z))))
**> > + fm <- glm(y ~ x, binomial, mydata)
**> > + fm
**> > + }
**> > >
**> > > myfun(100)
**> >
**> > Call: glm(formula = y ~ x, family = binomial, data = mydata)
**> >
**> > Coefficients:
**> > (Intercept) x
**> > 0.1587 1.0223
**> >
**> > Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
**> > Null Deviance: 137.6
**> > Residual Deviance: 118.3 AIC: 122.3
**> >
**> > Not even a murmur of complaint. (This also works in S-PLUS 7.0 but
**> > earlier versions of S-PLUS gave a problem rather like the one you note,
**> > curiously.)
**> >
**> > Look again at your code and see if the abstract version you give
**> > really matches what you did, may I suggest?
**> >
**> > >
**> > > as I execute this function, it gives error like this
**> > > Error in inherits(x, "data.frame") : object "mydata" not found
**> > >
**> > > So I guess glm here tries to find "mydata" in the parent environment.
**> > Why
**> > > doesn't it take "mydata" inside the function? How to let glm correctly
**> > > locate it? Is this (scope/environment) mentioned in R manual? Thanks,
**> > >
**> > > Mike
**> >
**>
**> [[alternative HTML version deleted]]
**>
**> ______________________________________________
**> R-help@stat.math.ethz.ch mailing list
**> https://stat.ethz.ch/mailman/listinfo/r-help
**> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
**> and provide commented, minimal, self-contained, reproducible code.
**>
*

-- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.Received on Thu Aug 24 03:16:24 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Thu 24 Aug 2006 - 06:22:38 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*