[R] Scoping problem

Thomas Lumley thomas at biostat.washington.edu
Thu Jul 6 00:19:59 CEST 2000


On Wed, 5 Jul 2000, Thomas Lumley wrote:

> On Wed, 5 Jul 2000, halvorsen wrote:
> 
> > Hola!
> > 
> > I have the following simple function:
> > 
> > > testcar
> > function(pow){
> >            ob <- glm(Pound~CG+Age+Vage,data=car,weights=No,
> >                      subset=No>0,family=quasi(link=power(pow),var=mu^2))
> > 
> >            deviance(ob)
> > }
> > But trying to run it gives:
> > 
> > > testcar(1/2)
> > Error in power(pow) : Object "pow" not found
> 
> 'pow' isn't found because quasi() is looking for it in a strange place.  
> Normally you would expect this sort of syntax to work, but the family
> functions do some tricky things to allow you to specify things with or
> without quotes and without or without parentheses.
> 
> I suspect this might count as a bug.
> 
> In any case, you can fix it by doing
> eval(substitute(glm(Pound~CG+Age+Vage,data=car,weights=No subset=No>0, 
> family=quasi(link=power(pow),var=mu^2))))
> 

As an additional note. This probably won't work if the argument to testcar
is a variable.

A more reliable version is 
 eval(substitute(glm(Pound~CG+Age+Vage,data=car,weights=No subset=No>0, 
 family=quasi(link=power(pow),var=mu^2)),list(pow=pow)))


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list