Re: [R] R 2.7.0: pdf() > pdf.options versus formals

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Mon, 26 May 2008 05:59:53 -0400

Hans-Joerg Bibiko wrote:
> Hi,
>
> I have a tiny question about the graphics change in R 2.7.0.
>
> If I write a script la:
>
> options(device="pdf")
> formals(pdf)[c("file","onefile","width","height")] <- list("~/Rplot
> %03d.pdf", FALSE, 8, 8)
> plot(3)
> plot(4)
>
> both plots will be written into ONE pdf file. (not two as expected)
> This worked fine under 2.6.x
>
> In R 2.7.0 I have to write:
>
> options(device="pdf")
> formals(pdf)[c("file","onefile","width","height")] <- list("~/Rplot
> %03d.pdf", FALSE, 8, 8)
> pdf.options(onefile=F)
> plot(3)
> plot(4)
>
> In the NEWS doc for R 2.7.0 is written:
> pdf() now takes defaults from the new function pdf.options() ...
>
> Fine. But is there no way to use formals in that context (or more
> precisely to preset 'onefile' because other arguments are taken from
> formals)?
>
As Brian said, no. But if you hadn't tried to be so clever, you wouldn't have this problem. You can write a new function that calls pdf(), and
give it whatever defaults you like. For example,

pdf <- function(file="foo", onefile=FALSE, width=8, height=8,...)   grDevices::pdf(file=file, onefile=onefile, width=width, height=height, ...)

As far as the original device function is concerned, file, onefile, width and height will never be missing, so the original default values will never be used. And because this approach doesn't modify the implementation of a base function, it
should be more robust to changes there: we're fairly unlikely to change the interpretation of any of those 4 parameters, and would not do so without NEWS notice in advance.

Duncan Murdoch  

> I have several scripts written for R 2.6 and that would mean that I
> have to rewrite all of them.
>
> R version 2.7.0 (2008-04-22)
> powerpc-apple-darwin8.10.1
>
> locale:
> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
>
> Many thanks in advance,
>
> --Hans
> ______________________________________________
> 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.
>



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. Received on Mon 26 May 2008 - 10:21:52 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 26 May 2008 - 10:30:40 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive