Is there any way to set options during the evaluation of a particular expression, with them automatically reset when control leaves that expression, however that happens? Kind of like "let" on a "special" variable does in Lisp. I naively tried with(options(warn=-1), { fit <- fitdistr(data, 'weibull') # complains about NaNs }) but this leaves options('warn') set to -1 afterward. I can save and restore the value explicitly, but then if fitdistr() throws an error, it won't get reset... zw
?on.exit But here, you want suppressWarnings. On Wed, 16 May 2007, Zack Weinberg wrote:> Is there any way to set options during the evaluation of a particular > expression, with them automatically reset when control leaves that > expression, however that happens? Kind of like "let" on a "special" > variable does in Lisp. I naively tried > > with(options(warn=-1), { > fit <- fitdistr(data, 'weibull') # complains about NaNs > }) > > but this leaves options('warn') set to -1 afterward. I can save and > restore the value explicitly, but then if fitdistr() throws an error, > it won't get reset...-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On Wed, 16 May 2007, Zack Weinberg wrote:> Is there any way to set options during the evaluation of a particular > expression, with them automatically reset when control leaves that > expression, however that happens? Kind of like "let" on a "special" > variable does in Lisp. I naively tried >You could write with_options() as with_options <-function(optionlist, expr){ oldoptions<-options(optionlist) on.exit(options(oldoptions)) eval(substitute(expr), parent.frame()) } and then do with_options(list(warn=-1), whatever) -thomas
Reasonably Related Threads
- lattice: aligning independent graphs
- [LLVMdev] setting up LLVM to *run on* amd64 but *generate code* for alpha
- [Bug 32855] New: Incorrect image stretching with Render in RepeatPad mode, NV50
- [Bug 91705] New: [NVE7] GPU crash (read fault) on boot w/ DMI+HDMI outputs
- [LLVMdev] setting up LLVM to *run on* amd64 but *generate code* for alpha