I have a loop that I would like to use to extract the "stddev" for each itteration so I can average the "stddev" for all the runs. It would be helpful to know how to extract the "stddev" for each run from the VarCorr. Thanks MCruns<-1000 sighatlvec<-rep(NA,MCruns) sighatbvec<-rep(NA,MCruns) sighatevec<-rep(NA,MCruns) for(mc in 1:MCruns) { samples<-(sqrt(sigbsq)*rnorm(6)) labs<-(sqrt(siglsq)*rnorm(2)) errors<-(sqrt(sigesq)*rnorm(24)) y<-errors+samples[sampfac]+labs[labfac] lmer<-lmer(y~1+(1|sampfac)+(1|labfac)) print(VC<-VarCorr(lmer)) }
Cant you just save that column of values to an object stddev<-VC[,2]#if it's the second column that has the values also I wouldn't save your model name in the same name as the command, when you have " lmer<-lmer(y~1+(1|sampfac)+(1|labfac))", may be best to have "lmer.mod<-lmer(y~1+(1|sampfac)+(1|labfac))" or something. Joe King 206-913-2912 jp at joepking.com Ad astra per aspera - "Through hardships to the stars" -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Stephanie Cooke Sent: Wednesday, January 19, 2011 11:33 AM To: r-help at r-project.org Subject: [R] VarCorr I have a loop that I would like to use to extract the "stddev" for each itteration so I can average the "stddev" for all the runs. It would be helpful to know how to extract the "stddev" for each run from the VarCorr. Thanks MCruns<-1000 sighatlvec<-rep(NA,MCruns) sighatbvec<-rep(NA,MCruns) sighatevec<-rep(NA,MCruns) for(mc in 1:MCruns) { samples<-(sqrt(sigbsq)*rnorm(6)) labs<-(sqrt(siglsq)*rnorm(2)) errors<-(sqrt(sigesq)*rnorm(24)) y<-errors+samples[sampfac]+labs[labfac] lmer<-lmer(y~1+(1|sampfac)+(1|labfac)) print(VC<-VarCorr(lmer)) } ______________________________________________ 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.
Is this what you want? attr(VarCorr(merobject)[[1]], "stddev") Alternately, look at: getMethod("VarCorr", signature = "mer") For what is happening behind the scenes and why I chose what I did to extract the standard deviations Cheers, Josh On Jan 19, 2011, at 11:32, Stephanie Cooke <cooke.stephanie at gmail.com> wrote:> I have a loop that I would like to use to extract the "stddev" for > each itteration so I can average the "stddev" for all the runs. It > would be helpful to know how to extract the "stddev" for each run from > the VarCorr. Thanks > > MCruns<-1000 > sighatlvec<-rep(NA,MCruns) > sighatbvec<-rep(NA,MCruns) > sighatevec<-rep(NA,MCruns) > > for(mc in 1:MCruns) > { > > samples<-(sqrt(sigbsq)*rnorm(6)) > labs<-(sqrt(siglsq)*rnorm(2)) > errors<-(sqrt(sigesq)*rnorm(24)) > y<-errors+samples[sampfac]+labs[labfac] > lmer<-lmer(y~1+(1|sampfac)+(1|labfac)) > print(VC<-VarCorr(lmer)) > } > > ______________________________________________ > 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.