HI, May be this helps: set.seed(24) dat1<- data.frame(age=sample(30:70,120,replace=TRUE),income=sample(40000:80000,120,replace=FALSE),country=rep(c("USA","GB","France"),each=40),stringsAsFactors=FALSE) library(plyr) ldply(dlply(dat1,.(country),lm,formula=income~0+age),function(x) coef(x)) # country age #1 France 1127.192 #2 GB 1194.586 #3 USA 1161.795 #or do.call(rbind,lapply(split(dat1,dat1$country),function(x) coef(with(x,lm(income~0+age))))) # age #France 1127.192 #GB 1194.586 #USA 1161.795 #or do.call(rbind,lapply(unique(dat1$country),function(x) {subframe<- dat1[which(dat1$country==x),]; fit<- lm(income~0+age,data=subframe); Coef1<-data.frame(age=coef(fit)); row.names(Coef1)<-x; Coef1})) # age #USA 1161.795 #GB 1194.586 #France 1127.192 A.K.
----- Original Message ----- From: "CHEN, Cheng" <chench...@gmail.com> To: R-help@r-project.org Cc: Sent: Sunday, May 19, 2013 8:31 AM Subject: [R] How to run lm for each subset of the data frame, and then aggreage the result? Hi gurus, I have a big data frame df, with columns named as : age, income, country what I want to do is very simpe actually, do fitFunc<-function(thisCountry){ subframe<-df[which(country==thisCountry),]; fit<-lm(income~0+age, data=subframe); return(coef(fit));} for each individual country. Then aggregate the result into a new data frame looks like : countryname, coeffname1 USA 1.22 GB 1.03 France 1.1 I tried to do : do.call("rbind", lapply(countries, fitFunc)) but this only gives something like: age [1,] 2.540879 [2,] 2.428830 [3,] 2.369560 How should I proceed? can anyone help? -- *CHEN*, Cheng [[alternative HTML version deleted]] ______________________________________________ R-help@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@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.