Vinculando variáveis externas em R
Suponha que eu tenha a seguinte função:
g = function(x) x+h
Agora, se eu tiver no meu ambiente um objeto chamadoh
, Eu não teria nenhum problema:
h = 4
g(2)
## should be 6
Agora, tenho outra função:
f = function() {
h = 3
g(2)
}
Eu esperaria:
rm(h)
f()
## should be 5, isn't it?
Em vez disso, recebo um erro
## Error in g(2) : object 'h' not found
eu esperariag
para ser avaliado dentro do ambiente def
, para que oh
nof
será ligado ao h em g, como era quando eu executeig
dentro do.GlobalEnv
. Isso não acontece (obviamente). alguma explicação por quê? como superar isso para que a função dentro da função (por exemplo,g
) serão avaliados usando o ambiente anexo?