R - Оценить вложенную функцию в среде
Я пытаюсь запустить кусок кода R в виде песочницы, загружая все необходимые зависимости (функции и данные) в новую среду и оценивая выражение в этой среде. Однако у меня возникают проблемы с функциями, вызывающими другие функции в среде. Вот простой пример:
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))
С помощьюeval
наexpr
не с тех порf2
не могу найтиf1
> eval(expr, envir=jobenv)
Error in f2(3) : could not find function "f1"
тогда как явное присоединение среды работает
> attach(jobenv)
> eval(expr)
[1] 7
Я, вероятно, упускаю что-то очевидное, но я не мог найти какую-либо перестановкуeval
Звоните, что работает. Есть ли способ получить тот же эффект без привязки к окружающей среде?