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?