Re: [R] question about formula for lm

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Sat, 16 Jun 2007 12:54:27 -0400

A couple of easy ways are to create the calling sequence as a call or character string and then evaluate it:

eval(bquote(lm(.(as.name(Ytext)) ~ Xvar, X)))

eval(parse(text = paste("lm(", Ytext, "~ Xvar, X)")))

Note that these solutions both have the advantage over some of the prior solutions that the output from print.lm shows which variable was actually used after Call:

> eval(bquote(lm(.(as.name(Ytext)) ~ Xvar, X)))
Call:
lm(formula = Yvar ~ Xvar, data = X) <--- This line comes out meaningfully!!!

Coefficients:

(Intercept)         Xvar
     0.3300       0.9729


On 6/14/07, Pedro Mardones <mardones.p_at_gmail.com> wrote:
> Dear all;
>
> Is there any way to make this to work?:
>
> .x<-rnorm(50,10,3)
> .y<-.x+rnorm(50,0,1)
>
> X<-data.frame(.x,.y)
> colnames(X)<-c("Xvar","Yvar")
>
> Ytext<-"Yvar"
>
> lm(Ytext~Xvar,data=X) # doesn't run
>
> lm(Yvar~Xvar,data=X) # does run
>
> The main idea is to use Ytext as input in a function, so you just type
> "Yvar" and the model should fit....
> Also, I need to avoid the expression X$Yvar~X$Xvar
>
> Thanks for any idea
>
> PM
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>



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 and provide commented, minimal, self-contained, reproducible code. Received on Sat 16 Jun 2007 - 16:59:41 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 16 Jun 2007 - 19:32:02 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.