Dear R users, Let?s say I have 10 models, each named m1,m2,m3..., and I would like to summarize them automatically and simultaneously - e.g., to extract parameter estimates later on from all models; how can I do that? I have tried: x=1:10 #this creates some example data y=rnorm(10) m1=lm(x~y) m2=lm(x~1) sum.lms=function(x)summary(paste("m",x,sep="")) sum.lms(1:2) but the paste() function always returns "m1" "m2" in quotation marks instead of m1 m2 Do you know a way around this? I guess I would need to use expression() or substitute() but I don?t know how to construct m1, m2... without the quotation marks. Thanks very much for your help! Best wishes, Christoph (using R 2.5.1 on Windows XP SP2) -- Dr. Christoph Scherber DNPW, Agroecology University of Goettingen Waldweg 26 D-37073 Goettingen Germany phone +49(0)551 39 8807 fax +49(0)551 39 8806 homepage www.gwdg.de/~cscherb1
Store the models into a list and the use an apply-function. x=1:10 #this creates some example data y=rnorm(10) m1=lm(x~y) m2=lm(x~1) Models <- list(m1, m2) lapply(Models, summary) HTH, Thierry ---------------------------------------------------------------------------- ir. Thierry Onkelinx Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance Gaverstraat 4 9500 Geraardsbergen Belgium tel. + 32 54/436 185 Thierry.Onkelinx op inbo.be www.inbo.be Do not put your faith in what statistics say until you have carefully considered what they do not say. ~William W. Watt A statistical analysis, properly conducted, is a delicate dissection of uncertainties, a surgery of suppositions. ~M.J.Moroney -----Oorspronkelijk bericht----- Van: r-help-bounces op r-project.org [mailto:r-help-bounces op r-project.org] Namens Christoph Scherber Verzonden: vrijdag 22 februari 2008 12:46 Aan: r-help op stat.math.ethz.ch Onderwerp: [R] Simultaneously summarizing many models Dear R users, Let?s say I have 10 models, each named m1,m2,m3..., and I would like to summarize them automatically and simultaneously - e.g., to extract parameter estimates later on from all models; how can I do that? I have tried: x=1:10 #this creates some example data y=rnorm(10) m1=lm(x~y) m2=lm(x~1) sum.lms=function(x)summary(paste("m",x,sep="")) sum.lms(1:2) but the paste() function always returns "m1" "m2" in quotation marks instead of m1 m2 Do you know a way around this? I guess I would need to use expression() or substitute() but I don?t know how to construct m1, m2... without the quotation marks. Thanks very much for your help! Best wishes, Christoph (using R 2.5.1 on Windows XP SP2) -- Dr. Christoph Scherber DNPW, Agroecology University of Goettingen Waldweg 26 D-37073 Goettingen Germany phone +49(0)551 39 8807 fax +49(0)551 39 8806 homepage www.gwdg.de/~cscherb1 ______________________________________________ R-help op 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.
Richard.Cotton at hsl.gov.uk
2008-Feb-22 15:07 UTC
[R] Simultaneously summarizing many models
> Let?s say I have 10 models, each named m1,m2,m3..., and I would like > to summarize them automatically > and simultaneously - e.g., to extract parameter estimates later on > from all models; how can I do that? > > I have tried: > > x=1:10 #this creates some example data > y=rnorm(10) > > m1=lm(x~y) > m2=lm(x~1) > > sum.lms=function(x)summary(paste("m",x,sep="")) > sum.lms(1:2) > > but the paste() function always returns "m1" "m2" in quotation marks > instead of m1 m2Try using get, like so: for(i in 1:2) print(summary(get(paste("m", i, sep="")))) Regards, Richie. Mathematical Sciences Unit HSL ------------------------------------------------------------------------ ATTENTION: This message contains privileged and confidential inform...{{dropped:21}}
Another option: lapply(ls(patt="^m[0-9]"), function(model)summary(get(model))) On 22/02/2008, Christoph Scherber <Christoph.Scherber at agr.uni-goettingen.de> wrote:> Dear R users, > > Let?s say I have 10 models, each named m1,m2,m3..., and I would like to summarize them automatically > and simultaneously - e.g., to extract parameter estimates later on from all models; how can I do that? > > I have tried: > > x=1:10 #this creates some example data > y=rnorm(10) > > m1=lm(x~y) > m2=lm(x~1) > > sum.lms=function(x)summary(paste("m",x,sep="")) > sum.lms(1:2) > > but the paste() function always returns "m1" "m2" in quotation marks instead of m1 m2 > > Do you know a way around this? I guess I would need to use expression() or substitute() but I don?t > know how to construct m1, m2... without the quotation marks. > > Thanks very much for your help! > > Best wishes, > > Christoph > > > (using R 2.5.1 on Windows XP SP2) > > > > -- > Dr. Christoph Scherber > DNPW, Agroecology > University of Goettingen > Waldweg 26 > D-37073 Goettingen > Germany > > phone +49(0)551 39 8807 > fax +49(0)551 39 8806 > homepage www.gwdg.de/~cscherb1 > > ______________________________________________ > 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. >-- Henrique Dallazuanna Curitiba-Paran?-Brasil 25? 25' 40" S 49? 16' 22" O