Hi, I'm fitting mixed effects models using the lme function of the nlme
package. This involves using the various associated plot functions.
However, when I attempt to fit a number of models using an loop, whilst
the models work, the plot functions fail. As a trivial example, the
following works:
library(nlme)
graphics.off()
x<-c(1:10)
y<-c(1:4,7:12)
b<-as.factor(c(rep("A",5),rep("B",5)))
model<-lme(y~x, random=~1|b)
plot(model)
however the following, identical code in a loop, doesn't:
graphics.off()
for(i in 1:2){
x<-c(1:10)
y<-c(1:4,7:12)
b<-as.factor(c(rep("A",5),rep("B",5)))
model<-lme(y~x, random=~1|b)
plot(model)
}
Mostly this is only inconvenient, since a similar plot may be created
successfully within the loop using plot(fitted(model),resid(model)),
however, I'd be keen to find out whether this is a general problem/sign
of something deeper or I'm just missing something easy that could sort
it out.
Thanks,
Chris
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dr. Christopher Knight Tel:+44 1865 275111
Dept. Plant Sciences +44 1865 275790
South Parks Road
Oxford OX1 3RB Fax:+44 1865 275074
` ?? . , ,><(((??>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Could it be that you need print(plot(model)) inside the loop? I believe plot() methods in nlme are mostly lattice graphics, which needs to be explicitly print()ed inside functions and loops. Andy> From: Chris Knight > > Hi, I'm fitting mixed effects models using the lme function > of the nlme > package. This involves using the various associated plot functions. > However, when I attempt to fit a number of models using an > loop, whilst > the models work, the plot functions fail. As a trivial example, the > following works: > > library(nlme) > > graphics.off() > x<-c(1:10) > y<-c(1:4,7:12) > b<-as.factor(c(rep("A",5),rep("B",5))) > model<-lme(y~x, random=~1|b) > plot(model) > > however the following, identical code in a loop, doesn't: > > graphics.off() > for(i in 1:2){ > x<-c(1:10) > y<-c(1:4,7:12) > b<-as.factor(c(rep("A",5),rep("B",5))) > model<-lme(y~x, random=~1|b) > plot(model) > } > > Mostly this is only inconvenient, since a similar plot may be created > successfully within the loop using plot(fitted(model),resid(model)), > however, I'd be keen to find out whether this is a general > problem/sign > of something deeper or I'm just missing something easy that could sort > it out. > > Thanks, > Chris > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Dr. Christopher Knight Tel:+44 > 1865 275111 > Dept. Plant Sciences +44 > 1865 275790 > South Parks Road > Oxford OX1 3RB Fax:+44 > 1865 275074 > ` ?? . , ,><(((??> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >
Use array for your tables and list for plots; e.g.,
allTable <- array(NA, dim=c(numRow, numCol, numIter))
allPlot <- vector(mode="list", length=numIter)
for (i in 1:numIter) {
...
allPlot[[i]] <- plot(...)
allTable[,,i] <- however you generate the table
}
HTH,
Andy
> From: Jennifer Emond
>
> yes, use the print command, and if you can save each plot in
> the loop,
> that will work.
> I had to do this for a loop and tables I was making. I had
> to save the
> first table to a matrix, then bind each successive table to that
> matrix, then print the final matrix. Not sure how to do this for a
> plot, though...
>
>
> On Jun 17, 2004, at 12:27 PM, Liaw, Andy wrote:
>
> > Could it be that you need print(plot(model)) inside the loop? I
> > believe
> > plot() methods in nlme are mostly lattice graphics, which
> needs to be
> > explicitly print()ed inside functions and loops.
> >
> > Andy
> >
> >> From: Chris Knight
> >>
> >> Hi, I'm fitting mixed effects models using the lme function
> >> of the nlme
> >> package. This involves using the various associated plot
functions.
> >> However, when I attempt to fit a number of models using an
> >> loop, whilst
> >> the models work, the plot functions fail. As a trivial example,
the
> >> following works:
> >>
> >> library(nlme)
> >>
> >> graphics.off()
> >> x<-c(1:10)
> >> y<-c(1:4,7:12)
> >> b<-as.factor(c(rep("A",5),rep("B",5)))
> >> model<-lme(y~x, random=~1|b)
> >> plot(model)
> >>
> >> however the following, identical code in a loop, doesn't:
> >>
> >> graphics.off()
> >> for(i in 1:2){
> >> x<-c(1:10)
> >> y<-c(1:4,7:12)
> >> b<-as.factor(c(rep("A",5),rep("B",5)))
> >> model<-lme(y~x, random=~1|b)
> >> plot(model)
> >> }
> >>
> >> Mostly this is only inconvenient, since a similar plot may
> be created
> >> successfully within the loop using
> plot(fitted(model),resid(model)),
> >> however, I'd be keen to find out whether this is a general
> >> problem/sign
> >> of something deeper or I'm just missing something easy
> that could sort
> >> it out.
> >>
> >> Thanks,
> >> Chris
> >> --
> >>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> Dr. Christopher Knight Tel:+44
> >> 1865 275111
> >> Dept. Plant Sciences +44
> >> 1865 275790
> >> South Parks Road
> >> Oxford OX1 3RB Fax:+44
> >> 1865 275074
> >> ` ?? . , ,><(((??>
> >>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>
> >> ______________________________________________
> >> R-help at stat.math.ethz.ch mailing list
> >> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide!
> >> http://www.R-project.org/posting-guide.html
> >>
> >>
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >
> >
> Jennifer A. Emond, MS
> Statistician
> Department of Biostatistics, UCSD
> 9500 Gilman Drive
> M/C 0949
> La Jolla, CA 92093-0949
> (858) 622-5877
> jemond at ucsd.edu
>
>
>