Try this dat=data.frame (ID=rep(1:27,each=10),IDV=rep(seq(1:10),times=27)) dat$DV <- with(dat, 50+15*IDV) dat=dat[order(dat$ID,dat$IDV),] for(i in 1:27){ dt1 = dat[dat$ID==i,] pagei=as.integer(ceiling(i/9))
#open device for subjects 1-9 if(i==1) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 ,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} if(i==1) {par(mar=c(5,5,4,1),mfrow=c(3,3))} ## open new file for subjects 10-18 if(i==10) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 ,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} if(i==10) {par(mar=c(5,5,4,1),mfrow=c(3,3))} ## open new file for subjects 19-27 if(i==19) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 ,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} if(i==19) {par(mar=c(5,5,4,1),mfrow=c(3,3))} plot(dt1[, "IDV"],dt1[, "DV"], type="n",ylim=range(dt1[, "DV"]), xlim=range(dt1[, "IDV"])) lines(dt1[, "IDV"], dt1[, "DV"], type="b", col=1,lwd=3,pch=1) title(paste(i),col=8,cex=.8) if(i==9) dev.off () ## close file no 1 if(i==18) dev.off () ## close file no 2 if(i==27) dev.off () ## close file no 3 } On Tue, May 10, 2011 at 9:25 AM, John S <john.smith...@gmail.com> wrote: > Thanks Uwe . The parentheses were a typo. Please note that if I have only 9 > subjects in my data then the following works (creates 493 KB data file) > > > > #windows() > > {tiff(file=paste("Outfile",1,".tiff",sep=""),width=17.15 > > ,height=17.15,units="cm", res=1200, pointsize=10, compression = > "lzw")} > > par(mar=c(5,5,4,1),mfrow=c(3,3)) > > for(i in 1:9){ > > dt1 = dat[dat$ID==i,] > > #pagei=as.integer(ceiling(i/9)) > > #This does not work > > #if(i==1) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 > > ##,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} > > > #par(mar=c(5,5,4,1),mfrow=c(3,3)) > > plot(dt1[, "IDV"],dt1[, "DV"], type="n",ylim=range(dt1[, "DV"]), > xlim=range(dt1[, "IDV"])) > > lines(dt1[, "IDV"], dt1[, "DV"], type="b", col=1,lwd=3,pch=1) > > title(paste(i),col=8,cex=.8) > > #if(i==5) dev.off ## close file > > ## open new file > > #if(i==5) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 > > ##,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} > > #if(i==9) dev.off () ## close file > > #if(i==9) {tiff(file=paste("Outfile",pagei,".tiff",sep=""),width=17.15 > > ##,height=17.15,units="cm", res=1200, pointsize=10, compression = "lzw")} > > } > > dev.off() > > > > > > My workaround around was to break the dataset into small data each with 9 > subjects but if I change the mfrow then I have to change no. of subjects. > Any smart suggestion to get around this? I tried to open and close devices > based on iterations (i) but it does not work for me > > > > > 2011/5/10 Uwe Ligges <lig...@statistik.tu-dortmund.de> > > > > > > > On 10.05.2011 03:36, John S wrote: > > > >> Dear Friends, > >> > >> I have been trying to save multiple 3x3 (mfrow=c(3,3) graphics inside a > >> loop > >> using tiff figure format (not using PDF or savePlot functions) with no > >> success. Could you please help? > >> > >> Here is a simplified example code: > >> > >> > >> > >> dat=data.frame (ID=rep(1:10,each=10),IDV=rep(seq(1:10),times=10)) > >> > >> dat$DV<- with(dat, 50+15*IDV) > >> > >> dat=dat[order(dat$ID,dat$IDV),] > >> > >> for(i in 1:10){ > >> > >> dt1 = dat[dat$ID==i,] > >> > >> pagei=as.integer(ceiling(i/9)) > >> > >> #This does not work > >> > >> if(i==1) {tiff(file=paste("Outfile",pagei,".tiff",sep="") > >> > >> ,width=17.15,height=17.15,units="cm", res=1200, pointsize=10, > >> compression = "lzw")} > >> > > > > You may not be able to allocate space for this huge tiffs (at least I am > > not able to do so under Windows). > > > > > > > > > > if(i==10) {tiff(file=paste("Outfile",pagei,".tiff",sep="") > >> > >> ,width=17.15,height=17.15,units="cm", res=1200, pointsize=10, > >> compression = "lzw")} > >> > >> par(mar=c(5,5,4,1),mfrow=c(3,3)) > >> > >> plot(dt1[, "IDV"],dt1[, "DV"], type="n") > >> > >> lines(dt1[, "IDV"], dt1[, "DV"], type="b", col=1,lwd=3,pch=1) > >> > >> title(paste(i),col=8,cex=.8) > >> > >> if(i==9) dev.off ## close file > >> > > > > Your forgot parentheses after dev.off. > > > > Uwe Ligges > > > > > > } > >> > >> dev.off() > >> > >> The idea is to save 2 files with 3x3 layouts but I only get one subject > >> in > >> Outfile1. > >> > >> > >> > >> OS: Windows 7 64 bits > >> > >> R version 2.13.0 > >> > >> Many Thanks, > >> > >> John > >> > >> [[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<http://www.r-project.org/posting-guide.html> > <http://www.r-project.org/posting-guide.html> > >> and provide commented, minimal, self-contained, reproducible code. > >> > > > > [[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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > [[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.