views:

835

answers:

2

I know that

 pdf("myOut.pdf")

will print to a PDF in R. What if I want to

  1. Make a loop that prints subsequent graphs on new pages of a PDF file (appending to the end)?

  2. Make a loop that prints subsequent graphs to new PDF files (one graph per file)?

A: 

Not sure I understand.

Appending to same file (one plot per page):

pdf("myOut.pdf")
for (i in 1:10){
  plot(...)
}
dev.off()

New file for each loop:

for (i in 1:10){
  pdf(paste("myOut",i,".pdf",sep=""))
  plot(...)
  dev.off()
}
Mark
You don't even need the paste() over filenames -- R can do that for you too; see my answer.
Dirk Eddelbuettel
+4  A: 

Did you look at help(pdf) ?

Usage:

 pdf(file = ifelse(onefile, "Rplots.pdf", "Rplot%03d.pdf"),
     width, height, onefile, family, title, fonts, version,
     paper, encoding, bg, fg, pointsize, pagecentre, colormodel,
     useDingbats, useKerning)

Arguments:

file: a character string giving the name of the file. For use with
      'onefile=FALSE' give a C integer format such as
      '"Rplot%03d.pdf"' (the default in that case). (See
      'postscript' for further details.)

For 1), you keep onefile at the default value of TRUE. Several plots go into the same file.

For 2), you set onefile to FALSE and choose a filename with the C integer format and R will create a set of files.

Dirk Eddelbuettel