on.exit
On Thu, 27 Sep 2001 13:05:01 -0400, you wrote in message <3BB35C3C.C4FE9451 at umsanet.edu.bo>:
but what should be better, doesnt work:
test1 <- function() {
+ oldwarn <- options("warn")
+ options(warn=-1)
+ on.exit( options(warn=oldwarn))
+ log(-1)
+ }
test1()
Error in options(...) : warn parameter invalid
What is wrong? (I have tried other versions, without success)
The problem is that you're assuming options() behaves the way par()
does, i.e. that options("warn") returns a number. It doesn't, it
returns a list.
The simplest way to get what you want is probably
test1 <- function() {
oldwarn <- options(warn=-1) # first call
on.exit( options(oldwarn)) # second call
log(-1)
}
Notice that the first call that changes the option returns the old
value, so you don't need two calls at the start; the second call that
restores it just uses the list (which has the name of the option
embedded in it).
Duncan Murdoch
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._