Evaluate an (Unevaluated) Expression

Usage

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


[Package Contents]