[R] metaprogramming with lm

Simon Blomberg s.blomberg1 at uq.edu.au
Thu Nov 13 02:04:08 CET 2008


You can construct the formula on the fly. Say you have a data frame with
columns: y, x1,...x10:

dat <- data.frame(matrix(rnorm(1100), ncol=11, dimnames=list(NULL,c("y",
paste("x", 1:10, sep="")))))

Then you could construct the formula using:

form <- formula(paste("y ~ ", paste(names(dat)[which(names(dat) !=
"y")], collapse="+")))

fit <- lm(form, data=dat)

HTH,

Simon.


On Thu, 2008-11-13 at 09:27 +0900, June Kim wrote:
> Hello,
> 
> Say I want to make a multiple regression model with the following expression:
> 
> lm(y~x1 + x2 + x3 + ... + x_n,data=mydata)
> 
> It gets boring to type in the whole independent variables, in this
> case x_i. Is there any simple way to do the metaprogramming for this?
> (There are different cases where the names of the independent
> variables might sometimes have apparent patterns or not)
> 
> ______________________________________________
> R-help at r-project.org 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.
-- 
Simon Blomberg, BSc (Hons), PhD, MAppStat. 
Lecturer and Consultant Statistician 
Faculty of Biological and Chemical Sciences 
The University of Queensland 
St. Lucia Queensland 4072 
Australia
Room 320 Goddard Building (8)
T: +61 7 3365 2506
http://www.uq.edu.au/~uqsblomb
email: S.Blomberg1_at_uq.edu.au

Policies:
1.  I will NOT analyse your data for you.
2.  Your deadline is your problem.

The combination of some data and an aching desire for 
an answer does not ensure that a reasonable answer can 
be extracted from a given body of data. - John Tukey.



More information about the R-help mailing list