[R] using lm() with variable formula
Chris Elsaesser
chris.elsaesser at spadac.com
Thu May 17 17:01:41 CEST 2007
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
SPADAC Inc.
7921 Jones Branch Dr. Suite 600
McLean, VA 22102
703.371.7301 (m)
703.637.9421 (o)
More information about the R-help
mailing list