Hi all, I am running R version 2.4.0 on Windows XP. I am new and have the following question: I have a dataset of columns named x1, x2, x3...xn. I would like to write a linear regression using lm that looks like this: lm(y~x1+x2+x3+...+xn) If I try to use the following code, I only get the model for y~x1+xn: n<-ncol(dataset) model<-lm(y~x1) for(i in 1:n) { model.new<-update(model, .~.+dataset[,i]) } The purpose of this is so I can use stepAIC with model.new as the upper scope and model as the lower. I know there must be a simple way to do this, but I am not yet familiar with much syntax. Any help appreciated! -- Brooke LaFlamme Cornell University
How about this: form <- formula(paste("y ~", paste("x", 1:n, sep="", collapse=" + "))) model <- lm(form) HTH, Simon. Brooke LaFlamme wrote:> Hi all, > > I am running R version 2.4.0 on Windows XP. I am new and have the following question: > > I have a dataset of columns named x1, x2, x3...xn. I would like to write a linear regression using lm that looks like this: > > lm(y~x1+x2+x3+...+xn) > > If I try to use the following code, I only get the model for y~x1+xn: > > n<-ncol(dataset) > model<-lm(y~x1) > for(i in 1:n) { > model.new<-update(model, .~.+dataset[,i]) > } > The purpose of this is so I can use stepAIC with model.new as the upper scope and model as the lower. > > I know there must be a simple way to do this, but I am not yet familiar with much syntax. Any help appreciated! > -- > Brooke LaFlamme > Cornell University > > ______________________________________________ > 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. > >-- Simon Blomberg, B.Sc.(Hons.), Ph.D, M.App.Stat. Centre for Resource and Environmental Studies The Australian National University Canberra ACT 0200 Australia T: +61 2 6125 7800 email: Simon.Blomberg_at_anu.edu.au F: +61 2 6125 0757 CRICOS Provider # 00120C 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.
Using the builtin anscombe data set try this where we note that the first 4 columns are x1, ..., x4 and the fifth column is y1. for(i in 1:4) print(coef(lm(y1 ~., anscombe[c(1:i, 5)]))) On 12/6/06, Brooke LaFlamme <bal44 at cornell.edu> wrote:> Hi all, > > I am running R version 2.4.0 on Windows XP. I am new and have the following question: > > I have a dataset of columns named x1, x2, x3...xn. I would like to write a linear regression using lm that looks like this: > > lm(y~x1+x2+x3+...+xn) > > If I try to use the following code, I only get the model for y~x1+xn: > > n<-ncol(dataset) > model<-lm(y~x1) > for(i in 1:n) { > model.new<-update(model, .~.+dataset[,i]) > } > The purpose of this is so I can use stepAIC with model.new as the upper scope and model as the lower. > > I know there must be a simple way to do this, but I am not yet familiar with much syntax. Any help appreciated! > -- > Brooke LaFlamme > Cornell University > > ______________________________________________ > 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. >