setting options only inside functions
Thanks to all who supplied suggestions. All of them worked. The best solution, however, was to wrap the stuff inside dummy() after the options(...) into a try() command. That way it also worked with the following setup:
dummy=function()
{
old.options=options(error=quote{dummy1()})
try(....,silent=TRUE)
options(old.options)
}
options(error=quote{dummy()})
The suggestion of Uwe did not work with these nested error handling functions. I, however, did not state my problem precisely enough for this.
Thanks again
Jannis
--- Jonathan Daily <biomathjdaily at gmail.com> schrieb am Mi, 27.4.2011:
Von: Jonathan Daily <biomathjdaily at gmail.com>
Betreff: Re: [R] setting options only inside functions
An: "Jannis" <bt_jannis at yahoo.de>
CC: r-help at r-project.org
Datum: Mittwoch, 27. April, 2011 13:35 Uhr
There is probably a more elegant way
to do this, but you could write
it into dummy1():
dummy1 <- function()
{
...original function
options(old.options)
}
Alternatively, you could use ?tryCatch with the finally
argument as a
call to options.
HTH,
Jon
On Wed, Apr 27, 2011 at 9:16 AM, Jannis <bt_jannis at yahoo.de>
wrote:
Dear list members, is it possible to set some options only inside a
function so that the original options are restored once the function is finished or aborted due to an error? ?Until now I do something like:
dummy=function()
{
?old.options=options(error=dummy1())
?....
?options(old.options)
}
This works for most cases but when the function
terminates because of an error and its last command is not run, error=dummy1() still remains as an option. Is there any way around this?
Cheers Jannis
______________________________________________ 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.
-- =============================================== Jon Daily Technician =============================================== #!/usr/bin/env outside # It's great, trust me.