[R] matching last argument in function
Thomas Lumley
tlumley at u.washington.edu
Tue Feb 12 21:31:24 CET 2008
On Tue, 12 Feb 2008, Alistair Gee wrote:
> I often want to temporarily modify the options() options, e.g.
>
> a <- seq(10000001, 10000001 + 10) # some wide object
>
> with.options <- function(..., expr) {
> options0 <- options(...)
> tryCatch(expr, finally=options(options0))
> }
>
> Then I can use:
>
> with.options(width=160, expr = print(a))
>
> But I'd like to avoid explicitly naming the expr argument, as in:
>
> with.options(width=160, print(a))
>
> How can I do this with R's argument matching?
You can't. You could provide a list, though:
with.options <- function(optionlist,expr){
option0<-options(optionlist)
on.exit(options(options0))
eval.parent(expr)
}
then
with.options(width=160, print(a))
with.options(list(width=160, warn=1), print(a))
-thomas
Thomas Lumley Assoc. Professor, Biostatistics
tlumley at u.washington.edu University of Washington, Seattle
More information about the R-help
mailing list