[R] passing formula arg to mgcv::gam

Vadim Ogranovich vograno at evafunds.com
Tue Sep 28 00:57:43 CEST 2004


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
> >
> 
> ______________________________________________
> R-help at 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
>




More information about the R-help mailing list