| Rserve.eval {Rserve} | R Documentation |
Rserve.eval evaluates a given expression in a way that is very
close to the behavior on the console Read/Evaluate/Print Loop (REPL).
Among other things this means printing the result of each expression
if visible. The function is guaranteed to not raise an error and in
case of an error it returns an object of class
Rserve-eval-error with details including the error and the
stack trace.
Rserve.eval(what, where = .GlobalEnv, last.value = FALSE, exp.value = FALSE,
context = NULL)
what |
expressions to evaluate |
where |
environment to evaluate in |
last.value |
logical, if |
exp.value |
logical, it |
context |
optional object that will be used as the context for the duration of the evaluation. |
If what contains one or more expressions, they are evaluated
one by one while printing the result of each if visible. Upon error
subsequent expressions are not evaluated. If what is not an
expression then the only a single evaluation of what is
performed and the result is not printed.
The main purpose of this function is to implement console front-ends
where the front-end uses parse() + Rserve.eval() to
simulate the action of a GUI. Because the function returns in all
circumstances it allows clients to rely on a well-define messaging
behavior.
If the evaluation triggered an error, the result is an object of class
Rserve-eval-error with components
error |
character, error message |
traceback |
list of contexts in the traceback |
expression |
if |
If the evaluation finished without an error then the result is either
TRUE if last.value=FALSE or the value of the last
expression otherwise.
Simon Urbanek
g <- function() stop("foo")
f <- function() g()
(Rserve.eval(expression(f())))
(Rserve.eval(parse(text="1:5\n1+1")))
(Rserve.eval(quote(1+1), last.value=TRUE))