[R] summary many regressions

arun smartpink111 at yahoo.com
Tue Nov 26 01:27:25 CET 2013

res <- do.call(rbind,lapply(split(data,data$city),function(z) {fit_city <- lm(y~x,data=z);data.frame(City=unique(z$city),Coefficient=coef(fit_city)[2],Adjusted_R_square= summary(fit_city)$adj.r.squared)}))


On Monday, November 25, 2013 6:37 PM, Gary Dong <pdxgary163 at gmail.com> wrote:
Dear R users,

I have a large data set which includes data from 300 cities. I want to run
a biviriate regression for each city and record the coefficient and the
adjusted R square.

For example, in the following, I have 10 cities represented by numbers from
1 to 10:

x = cumsum(c(0, runif(999, -1, +1)))
y = cumsum(c(0, runif(999, -1, +1)))
city = rep(1:10,each=100)

I can manually run regressions for each city:
fit_city1 <- lm(y ~ x,data=subset(data,data$city==1))

Obvious, it is very tedious to run 300 regressions. I wonder if there is a
quicker way to do this. Use for loop?  what I want to see is something like

City        Coefficient       Adjusted R square
1              -0.05                  0.36
2              -0.12                  0.20
3              -0.05                  0.32

Any advice is appreciated!


    [[alternative HTML version deleted]]

R-help at r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list