On Sun, 1 Aug 2010, Benjamin Ridenhour wrote:

Hello all,
I'm sure I'm missing something simple here, but I can't figure out how to
modify the glm.fit() function and then get R to use it (sort of). I'm doing
something along the lines of:

glm.fit<-edit(glm.fit) # add something trivial to the top of the glm.fit
function like: print("Hello world!")

#now have a modified glm.fit in position 1/.GlobalEnv

x<-rnorm(20)
y<-rnomr(20)

glm(y~x)  # I don't get the trivial bit of glm.fit back (i.e. "Hello world!"
doesn't print)

#but

glm(y~x,method=glm.fit) # works! I get "Hello world!"

My understanding is that glm() should call glm.fit() by default but it seems
to be calling the glm.fit() in "package:stats" and not ".GlobalEnv". Why
isn't the function in ".GlobalEnv" superseding the version in
"package:stats"?

Because that is the way scoping works in R -- you need to understad the concept of name spaces.

This is not the way to do what you seem to want: rename your fitter function and use

  method: the method to be used in fitting the model.  The default
          method ‘"glm.fit"’ uses iteratively reweighted least squares
          (IWLS), whereas ‘"model.frame"’ which returns the model frame
          and does no fitting.  User-supplied fitting functions can be
          supplied either as a function or a character string naming a
          function, with a function which takes the same arguments as
          ‘glm.fit’.

to specify it.


Thanks,
Ben

--
Brian D. Ripley,                  rip...@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@r-project.org 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.

Reply via email to