On Feb 12, 2008, at 3:31 PM, Thomas Lumley wrote: > 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:
I'd second this idea: Always have two arguments, the second one being the expression and the first one being the list of options. This would make it look a lot more like "with" also. Haris Skiadas Department of Mathematics and Computer Science Hanover College > 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 > [EMAIL PROTECTED] University of Washington, Seattle ______________________________________________ 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.