Protect Function Evaluations
Ensures non-failure and possibly finite-ness of a function evaluation.
protect(f, fail.value.default=NULL) invert(f)
f |
A function. |
fail.value.default |
Value that will be used as on failure of
|
protect returns a function with arguments
g(..., fail.value=fail.value.default, finite=NULL)
The ... arguments are all passed through to the underlying
function f, fail.value contains the value to return in
the event of a failure (e.g., an error occuring). If finite is
TRUE, then fail.value is also returned where the value
is NA, NaN or infinite.
No check is made that f returns a single value, but it should.
Richard G. FitzJohn
f <- function(x) log(x)
g <- protect(f)
f(0) # -Inf
g(0, fail.value=-999) # -999
f <- function(x) {
if ( x < 1 )
stop("dummmy error")
x
}
g <- protect(f)
## Not run:
f(0) # error
## End(Not run)
g(0, fail.value=-999) # -999Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.