Last chance! 50% off unlimited learning
Sale ends in
options(error = recover)
will make this
the error option.
recover()
recover
directly from a function, rather than through the error
option shown in the examples. In this case, execution continues
after you type 0
to exit recover
.
recover
function can be used in the same way as the
S function of the same name; therefore, the error option shown is
a compatible way to specify the error action. However, the actual
functions are essentially unrelated and interact quite differently
with the user. The navigating commands up
and down
do
not exist in the R version; instead, exit the browser and select
another frame.recover
prints the list of current calls, and
prompts the user to select one of them. The standard R
browser
is then invoked from the corresponding
environment; the user can type ordinary R language expressions to be
evaluated in that environment. When finished browsing in this call, type c
to return to
recover
from the browser. Type another frame number to browse
some more, or type 0
to exit recover
.
The use of recover
largely supersedes dump.frames
as an error option, unless you really want to wait to look at the
error. If recover
is called in non-interactive mode, it
behaves like dump.frames
. For computations involving large
amounts of data, recover
has the advantage that it does not
need to copy out all the environments in order to browse in them. If
you do decide to quit interactive debugging, call
dump.frames
directly while browsing in any frame (see
the examples).
browser
for details about the interactive computations;
options
for setting the error option;
dump.frames
to save the current environments for later
debugging.
## Not run:
#
# options(error = recover) # setting the error option
#
# ### Example of interaction
#
# > myFit <- lm(y ~ x, data = xy, weights = w)
# Error in lm.wfit(x, y, w, offset = offset, ...) :
# missing or negative weights not allowed
#
# Enter a frame number, or 0 to exit
# 1:lm(y ~ x, data = xy, weights = w)
# 2:lm.wfit(x, y, w, offset = offset, ...)
# Selection: 2
# Called from: eval(expr, envir, enclos)
# Browse[1]> objects() # all the objects in this frame
# [1] "method" "n" "ny" "offset" "tol" "w"
# [7] "x" "y"
# Browse[1]> w
# [1] -0.5013844 1.3112515 0.2939348 -0.8983705 -0.1538642
# [6] -0.9772989 0.7888790 -0.1919154 -0.3026882
# Browse[1]> dump.frames() # save for offline debugging
# Browse[1]> c # exit the browser
#
# Enter a frame number, or 0 to exit
# 1:lm(y ~ x, data = xy, weights = w)
# 2:lm.wfit(x, y, w, offset = offset, ...)
# Selection: 0 # exit recover
# >
#
# ## End(Not run)
Run the code above in your browser using DataLab