[R] data frame as X in linear model lm() ?

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Mar 27 09:25:07 CEST 2006


I guess you are looking for

 	print(summary(lm(y ~ ., data=x.d)))

since '.' refers to all the columns of 'data' except perhaps the response.

On Sat, 25 Mar 2006, ivo welch wrote:

> Dear R wizards:  This must have an obvious solution, but I am stumped.
> I can run a linear regression giving a matrix as the independent set
> of variables, but if I give a data frame (which I would like to give,
> because it should tell the linear model the names of the variables), R
> does not like it.  An example is:
>
> N=20; y= rnorm(N);
> x.m <- (matrix( nrow=N, ncol=2 ));
> x.m[,1]=rnorm(N); x.m[,2]=rnorm(N);
>
> print(summary(lm(y ~ x.m)));  # works
>
> x.d <- as.data.frame(x.m);
> names(x.d) <- c("one.rv", "two.rv");  # I would like the summary to
> know my variable names!
>
> print(summary(lm(y ~ x.d)));  # fails
>
> [please indulge my semi-colons.]  how should this be done?  help, as
> always, appreciated.
>
> sincerely,
>
> /ivo welch

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
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




More information about the R-help mailing list