Enlace de variables externas en R
Supongamos que tengo la siguiente función:
g = function(x) x+h
Ahora, si tengo en mi entorno un objeto llamadoh
, No tendría ningún problema:
h = 4
g(2)
## should be 6
Ahora tengo otra función:
f = function() {
h = 3
g(2)
}
Yo esperaría:
rm(h)
f()
## should be 5, isn't it?
En cambio, recibo un error
## Error in g(2) : object 'h' not found
Yo esperaríag
para ser evaluado dentro del entorno def
, de manera que lah
enf
estará vinculado a la h en g, como era cuando ejecutég
dentro de.GlobalEnv
. Esto no sucede (obviamente). alguna explicación por qué? cómo superar esto para que la función dentro de la función (p. ej.g
) se evaluará utilizando el entorno envolvente?