On Fri, 18 Nov 2005, Juni Joshi wrote:

>
>   I  need  to fit a number of models with different number of predictors
>   in  each  model.  Say for example, I have three predictors: x1, x2, x3
>   and I want to fit three models:
>
>   lm(y~x1+x2)
>   lm(y~x2+x3)
>   lm(y~x1+x2+x3)
>
>   Instead  of  typing  all  models,  what I want is to create a variable
>   which  can  take  the right hand side of the models. I tried this with
>   paste function.
>
>   xxx <- paste("x1","x2",sep=+) for the first

This gives a syntax error!

>   xxx <- paste("x2","x3", sep = +) for the second
>   xxx  <-  paste("x1","x2","x2",  sep  = +) for the third and then fit a
>   single model
>
>   lm(y~xxx)
>
>   It did not work. Please suggest how to do it.

You want a formula here, and you also need to use code without syntax 
errors.  For example

> xxx <- paste("x1", "x2", sep="+")
> lm(as.formula(paste("y ~", xxx)))

But a better idea would be to put all your variables into a data frame DF 
and do

use <- c("x1", "x2") # set as appropriate
lm(y ~ ., data=DF[c("y", use)])

-- 
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@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

Reply via email to