[R] using lm() with variable formula [Broadcast]

Liaw, Andy andy_liaw at merck.com
Fri May 18 12:50:38 CEST 2007

One way to do it is by giving a data frame with the right variables to
lm() as the first argument each time.  If lm() is given a data frame as
the first argument, it will treat the first variable as the LHS and the
rest as the RHS of the formula.

As examples, you can do:

lm(myData[c("height", "weight", "BP", "Cals")])

(The drawback to this is that the "formula" in the fitted model object
looks a bit strange...)


From: Chris Elsaesser
> New to R; please excuse me if this is a dumb question.  I 
> tried to RTFM;
> didn't help.
> I want to do a series of regressions over the columns in a data.frame,
> systematically varying the response variable and the the 
> terms; and not
> necessarily including all the non-response columns.  In my case, the
> columns are time series. I don't know if that makes a difference; it
> does mean I have to call lag() to offset non-response terms. I can not
> assume a specific number of columns in the data.frame; might 
> be 3, might
> be 20. 
> My central problem is that the formula given to lm() is different each
> time.  For example, say a data.frame had columns with the following
> headings:  height, weight, BP (blood pressure), and Cals 
> (calorie intake
> per time frame).  In that case, I'd need something like the following:
> 	lm(height ~ weight + BP + Cals)
> 	lm(height ~ weight + BP)
> 	lm(height ~ weight + Cals)
> 	lm(height ~ BP + Cals)
> 	lm(weight ~ height + BP)
> 	lm(weight ~ height + Cals)
> 	etc.
> In general, I'll have to read the header to get the argument labels.
> Do I have to write several functions, each taking a different 
> number of
> arguments?  I'd like to construct a string or list representing the
> varialbes in the formula and apply lm(), so to say  [I'm mainly a Lisp
> programmer where that part would be very simple. Anyone have 
> a Lisp API
> for R? :-}]
> Thanks,
> chris
> Chris Elsaesser, PhD        
> Principal Scientist, Machine Learning
> 7921 Jones Branch Dr. Suite 600  
> McLean, VA 22102  
> 703.371.7301 (m)
> 703.637.9421 (o)
> ______________________________________________
> 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.

Notice:  This e-mail message, together with any attachments,...{{dropped}}

More information about the R-help mailing list