A menudo escribo funciones que necesitan ver otros objetos en mi entorno. Por ejemplo:Escribir funciones en R, teniendo en cuenta el alcance
> a <- 3
> b <- 3
> x <- 1:5
> fn1 <- function(x,a,b) a+b+x
> fn2 <- function(x) a+b+x
> fn1(x,a,b)
[1] 7 8 9 10 11
> fn2(x)
[1] 7 8 9 10 11
Como era de esperar, estas dos funciones son idénticas porque fn2
puede "ver" A y B cuando se ejecuta. Pero cada vez que empiezo a aprovechar esto, en aproximadamente 30 minutos termino llamando a la función sin una de las variables necesarias (por ejemplo, aob). Si no me aprovecho de esto, entonces siento que estoy pasando innecesariamente por los objetos.
¿Es mejor ser explícito sobre lo que requiere una función? ¿O debería hacerse cargo de esto a través de comentarios en línea u otra documentación de la función? ¿Hay una mejor manera?