Convert expression into function object.

expr_to_fun(expr_, order = NULL, vec_arg = FALSE)

Arguments

expr_

R expression.

order

desired order of function argument.

vec_arg

should the function take vector valued argument.

Examples


ee  <- expression(b1 + (b0 - b1)*exp(-k*x) + b2*x)
ff1 <- expr_to_fun(ee)
formals(ff1)
#> $b0
#> 
#> 
#> $b1
#> 
#> 
#> $b2
#> 
#> 
#> $k
#> 
#> 
#> $x
#> 
#> 

ff2 <- expr_to_fun(ee, vec_arg=TRUE)
formals(ff2)
#> $parm
#> 
#> 
#> $length_parm
#> [1] 5
#> 
#> $names_parm
#> c("b0", "b1", "b2", "k", "x")
#> 
formals(ff2)$length_parm
#> [1] 5
formals(ff2)$names_parm |> eval()
#> [1] "b0" "b1" "b2" "k"  "x" 

ee <- expression(matrix(c(x1+x2, x1-x2, x1^2+x2^2, x1^3+x2^3), nrow=2))
ff1 <- expr_to_fun(ee)
ff2 <- expr_to_fun(ee, vec_arg=TRUE)

formals(ff2)
#> $parm
#> 
#> 
#> $length_parm
#> [1] 2
#> 
#> $names_parm
#> c("x1", "x2")
#> 
formals(ff2)$length_parm
#> [1] 2
formals(ff2)$names_parm |> eval()
#> [1] "x1" "x2"