[Rd] Questions about calls and formulas

Gabor Grothendieck ggrothendieck at gmail.com
Tue Aug 23 00:55:38 CEST 2005


On 8/22/05, Erich Neuwirth <erich.neuwirth at univie.ac.at> wrote:
> >
> >>(foo <- eval(substitute(x ~ g * h, list(x = as.name("weights")))))
> >
> > weights ~ g * h
> >
> >>class(foo)
> >
> > [1] "formula"
> >
> >
> 
>  ff<-formula("x~g*h")
>  (foo<-eval(substitute(ff,list(x=as.name("weights")))))
> 
> gives
> 
>  x ~ g * h
> 
> what needs to be done to ff for the substitution to work?
> 
> I found a way of doing it using string substitution
> and applying formula (instead of as.call) to the string,
> but I would like to be able to do it using substitution.
> 
> This is what I currently do:
> 
>  myexpr<-paste("weights ~",strsplit(deparse(m$formula),"~")[[1]][2])
>  m$formula<-formula(myexpr)

Try do.call like this:

ff <- x ~ g*h
do.call("substitute", list(ff, list(x = as.name("weight"))))



More information about the R-devel mailing list