evaluate(f, var, params = list(), vectorize =TRUE)
Arguments
f: array of characters or expressions to be evaluated.
var: named vector or data.frame in which f is to be evaluated.
params: list of additional parameters passed to f.
vectorize: logical. Use vectorization? If TRUE, it can significantly boost performance but f needs to handle the vector of inputs appropriately.
Returns
Evaluated object. When var is a named vector, the return is an array with the same dimensions of f. When var is a data.frame, the return is a matrix with columns corresponding to the entries of f and rows corresponding to the rows of var.
Examples
### single evaluationf <- array(letters[1:4], dim = c(2,2))var <- c(a =1, b =2, c =3, d =4)evaluate(f, var)### multiple evaluationf <- array(letters[1:4], dim = c(2,2))var <- data.frame(a =1:3, b =2:4, c =3:5, d =4:6)evaluate(f, var)### multiple evaluation with additional parametersf <-"a*sum(x)"var <- data.frame(a =1:3)params <- list(x =1:3)evaluate(f, var, params)### multiple evaluation of non-vectorized expressionsf <-"a*myf(x)"myf <-function(x)if(x>0)1else-1var <- data.frame(a =1:3, x =-1:1)evaluate(f, var, params = list(myf = myf), vectorize =FALSE)
References
Guidotti E (2022). "calculus: High-Dimensional Numerical and Symbolic Calculus in R." Journal of Statistical Software, 104(5), 1-37. tools:::Rd_expr_doi("10.18637/jss.v104.i05")