[R] passing formula arg to mgcv::gam

Gabor Grothendieck ggrothendieck at myway.com
Tue Sep 28 03:19:33 CEST 2004


How about

   environment(formula) <- environment()


Vadim Ogranovich <vograno <at> evafunds.com> writes:

: 
: This is a self-response .
: 
: It was indeed a problem with environments. One way to get around is 
to "reset" the environment, e.g. inside
: callGam do
: formula <- as.formula(unclass(formula)) 
: 
: Not too aesthetic, but works. Is there a less kludgy way to do this?
: 
: BTW, forgot to mention. This is R-1.9.1 on RH-7.3.
: 
: Thanks,
: Vadim
: 
: > -----Original Message-----
: > From: r-help-bounces <at> stat.math.ethz.ch 
: > [mailto:r-help-bounces <at> stat.math.ethz.ch] On Behalf Of Vadim 
: > Ogranovich
: > Sent: Monday, September 27, 2004 3:24 PM
: > To: r-help <at> stat.math.ethz.ch
: > Subject: [R] passing formula arg to mgcv::gam 
: > 
: > Hi,
: > 
: > I have a function, callGam, that fits a gam model to a subset 
: > of a dataframe. The argument to callGam is a formula, the 
: > subset is determined inside the function itself. My naïve 
: > approach generates and error, see below. I guess this is 
: > because 'idx' is loocked up in the environment of 'formula', 
: > but I am too ignorant about environments to be able to tell 
: > for sure. Could someone please suggest a way around?
: > 
: > Thanks,
: > Vadim
: > 
: > > library("mgcv")
: > > 
: > > callGam <- function(formula) {
: > +   idx <- seq(10)
: > +   gam(formula, data=data.frame(x=rnorm(100), y=rnorm(100)), 
: > + subset=idx) }
: > > 
: > > gam.fit <- callGam(y ~ x)
: > Error in eval(expr, envir, enclos) : Object "idx" not found




More information about the R-help mailing list