R - Avaliar uma função aninhada em um ambiente

Eu estou tentando executar um trecho de código R de forma de sandbox, carregando todas as dependências necessárias (funções e dados) em um novo ambiente e avaliando uma expressão dentro desse ambiente. No entanto, estou tendo problemas com funções que chamam outras funções no ambiente. Aqui está um exemplo simples:

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))

Usandoeval emexpr falha desdef2 não consegue encontrarf1

> eval(expr, envir=jobenv)
Error in f2(3) : could not find function "f1"

enquanto anexando explicitamente os trabalhos do ambiente

> attach(jobenv)
> eval(expr)
[1] 7

Provavelmente estou sentindo falta de algo óbvio, mas não encontrei nenhuma permutação doeval Chame isso funciona. Existe uma maneira de obter o mesmo efeito sem vincular o ambiente?

questionAnswers(2)

yourAnswerToTheQuestion