[ top | up ]
Evaluate an (Unevaluated) Expression
Syntax
eval(expr, envir=sys.frame(sys.parent()))
Arguments
expr
|
object of mode expression or an ``unevaluated
expression''.
|
envir
|
the environment in which expr is to be
evaluated.
|
Description
This function evaluates the expression expr argument in the
environment specified by envir and returns the computed value. If
envir is not specified, then
sys.frame(sys.parent()), the environment where the
call to eval was made is used.
This allows you to assign complicated expressions to symbols and then
evaluate them. If you want to evaluate expr in envir then
you must wrap a call to expression around it.
See Also
expression, sys.frame, environment.
Examples
eval(2 ^ 2 ^ 3)
mEx <- expression(2^2^3); mEx; 1 + eval(mEx)
eval({ xx <- pi; xx^2}) ; xx
ev <- function() {
e1 <- sys.frame(sys.parent())
## Evaluate a in e1
aa <- eval(expression(a),e1)
## evaluate the expression bound to a in e1
a <- expression(x+y)
list(aa = aa, eval = eval(a, e1))
}
tst.ev <- function(a = 7) { x <- pi; y <- 1; ev() }
tst.ev()#-> aa : 7, eval : 4.14