De texto a función
Problema: convertir una expresión definida por un usuario (p.e., algo como "a+b"
) en una función (i.e., function(a, b) a + b
).
Solución:
gen_foo <- function(expr){
my_args <- all.vars(parse(text = expr))
expr <- paste0("function(",
paste(my_args, collapse = ","),
") ", expr)
eval(parse(text = expr))
}
Demostración:
multiplica <- gen_foo("a * b")
multiplica(5, 31)