R - Evaluar una función anidada en un entorno
Estoy tratando de ejecutar un trozo de código R de forma sandbox ed, cargando todas las dependencias necesarias (funciones y datos) en un nuevo entorno y evaluando una expresión dentro de ese entorno. Sin embargo, estoy teniendo problemas con las funciones que llaman a otras funciones en el entorno. Aquí hay un ejemplo simple:
jobenv <- new.env(parent=globalenv())
assign("f1", function(x) x*2, envir=jobenv)
assign("f2", function(y) f1(y) + 1, envir=jobenv)
expr <- quote(f2(3))
Utilizandoeval
enexpr
falla desdef2
no puedo encontrarf1
> eval(expr, envir=jobenv)
Error in f2(3) : could not find function "f1"
mientras que adjuntar explícitamente el medio ambiente funciona
> attach(jobenv)
> eval(expr)
[1] 7
Probablemente me esté perdiendo algo obvio, pero no pude encontrar ninguna permutación de laeval
Llamada que funciona. ¿Hay alguna forma de obtener el mismo efecto sin asociar el entorno?