En general, las variables globales son evil. El principio subyacente de por qué son malvados es que quieres minimizar las interconexiones en tu paquete. Estas interconexiones a menudo hacen que las funciones tengan efectos secundarios, es decir, depende no solo de los argumentos de entrada cuál es el resultado, sino también del valor de alguna variable global. Especialmente cuando la cantidad de funciones crece, esto puede ser difícil de resolver y mucho menos depurar.
Para las variables globales en R, vea este SO post.
Editar en respuesta a tu comentario: Una alternativa podría ser simplemente pasar la información necesaria a las funciones que lo necesitan. Se puede crear un nuevo objeto que contiene esta información:
token_information = list(token1 = "087091287129387",
token2 = "UA2329723")
y requieren todas las funciones que necesitan esta información para tenerlo como un argumento:
do_stuff = function(arg1, arg2, token)
do_stuff(arg1, arg2, token = token_information)
De esta manera queda claro a partir del código que se necesita información de token en la función, y puede depurar la función por sí mismo. Además, la función no tiene efectos secundarios, ya que su comportamiento está completamente determinado por sus argumentos de entrada. Un script de usuario típico sería algo así como:
token_info = create_token(token1, token2)
do_stuff(arg1, arg2, token_info)
Espero que esto aclare las cosas.
¿Podría profundizar más en su situación específica? Entonces podríamos ayudarlo a encontrar alternativas, preferiblemente ... –
http://stackoverflow.com/questions/5526322/examples-of-the-perils-of-globals-in-r-and-stata –