[R] Running regression (lm, lrm) 100+ times and saving the results as matrix

Chuck Cleland ccleland at optonline.net
Tue Apr 29 14:05:48 CEST 2008


On 4/29/2008 7:27 AM, Mike H. Ryu wrote:
> An undergraduate here, so do not hesitate to let me know if you feel that
> I'm heading in a wrong direction.
> 
> I have a data frame containing panel data across 10 years (hence 120
> months).  I want to be able to run regression separately for each month (or
> year).  The below shows how I ran the regression for each month, but I need
> to know how I would combine the regression results together into a matrix
> possibly.
> 
> Thank you!

If by "results" you mean the coefficients, how about something like this?

t(sapply(split(mydata, mydata$TIME),
     function(x){coef(lm(X ~ A + B, data = x))}))

> Mike
> 
> -------------------------------
> 
> m = max(data$TIME)
> 
> # define regmatrix
> 
> for(i in 1:m){
> 
>  g=runreg(data, i)
> 
>  # attach g to regmatrix
> 
> }
> 
> runreg = function(data, index){
> 
> datainterim = subset(data, TIME==index)
> 
> g = lrm(X ~ A + B, datainterim)
> 
> return(g)
> 
> }
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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. 

-- 
Chuck Cleland, Ph.D.
NDRI, Inc. (www.ndri.org)
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894



More information about the R-help mailing list