From: Greg Snow <Greg.Snow_at_imail.org>

Date: Mon, 28 Feb 2011 14:30:28 -0700

Date: Mon, 28 Feb 2011 14:30:28 -0700

Don't put the name of the dataset in the formula, use the data argument to lm to provide that. A single period (".") on the right hand side of the formula will represent all the columns in the data set that are not on the left hand side (you can then use "-" to remove any other columns that you don't want included on the RHS).

For example:

> lm(Sepal.Width ~ . - Sepal.Length, data=iris)

Call:

lm(formula = Sepal.Width ~ . - Sepal.Length, data = iris)

Coefficients:

(Intercept) Petal.Length Petal.Width Speciesversicolor 3.0485 0.1547 0.6234 -1.7641 Speciesvirginica -2.1964

But, are you sure that a regression model with 339 predictors will be meaningful?

-- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.snow_at_imail.org 801.408.8111Received on Mon 28 Feb 2011 - 21:33:29 GMT

> -----Original Message-----

> From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-> project.org] On Behalf Of Matthew Douglas> Sent: Monday, February 28, 2011 1:32 PM> To: r-help_at_r-project.org> Subject: [R] Regression with many independent variables>> Hi,>> I am trying use lm() on some data, the code works fine but I would> like to use a more efficient way to do this.>> The data looks like this (the data is very sparse with a few 1s, -1s> and the rest 0s):>> > head(adj0708)> MARGIN Poss P235 P247 P703 P218 P430 P489 P83 P307 P337....> 1 64.28571 29 0 0 0 0 0 0 0 0 0 0> 0 0 0> 2 -100.00000 6 0 0 0 0 0 0 0 1 0 0> 0 0 0> 3 100.00000 4 0 0 0 0 0 0 0 1 0 0> 0 0 0> 4 -33.33333 7 0 0 0 0 0 0 0 0 0 0> 0 0 0> 5 200.00000 2 0 0 0 0 0 0 0 0 0 0> -1 0 0> 6 -83.33333 12 0 -1 0 0 0 0 0 0 0 0> 0 0 0>> adj0708 is actually a 35657x341 data set. Each column after "Poss" is> an independent variable, the dependent variable is "MARGIN" and it is> weighted by "Poss">>> The regression is below:> fit.adj0708 <- lm( adj0708$MARGIN~adj0708$P235 + adj0708$P247 +> adj0708$P703 + adj0708$P430 + adj0708$P489 + adj0708$P218 +> adj0708$P605 + adj0708$P337 + .... +> adj0708$P510,weights=adj0708$Poss)>> I have two questions:>> 1. Is there a way to to condense how I write the independent variables> in the lm(), instead of having such a long line of code (I have 339> independent variables to be exact)?> 2. I would like to pair the data to look a regression of the> interactions between two independent variables. I think it would look> something like this....> fit.adj0708 <- lm( adj0708$MARGIN~adj0708$P235:adj0708$P247 +> adj0708$P703:adj0708$P430 + adj0708$P489:adj0708$P218 +> adj0708$P605:adj0708$P337 + ....,weights=adj0708$Poss)> but there will be 339 Choose 2 combinations, so a lot of independent> variables! Is there a more efficient way of writing this code. Is> there a way I can do this?>> Thanks,> Matt>> ______________________________________________> 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.

______________________________________________ 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.

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Tue 01 Mar 2011 - 22:20:17 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*