Variables globales dans R


151

Je fouille dans les manuels, je voulais demander à la communauté: Comment pouvons-nous définir des variables globales à l'intérieur d'une fonction?

Réponses:


174

Comme le assign()montre la réponse de Christian , il existe un moyen d'attribuer dans l'environnement global. Une manière plus simple, plus courte (mais pas meilleure ... s'en tenir à assign) consiste à utiliser l' <<-opérateur, c'est-à-dire

    a <<- "new" 

à l'intérieur de la fonction.


41
Cette approche n'enregistre pas en fait dans l'environnement global, mais plutôt dans la portée parent. Parfois, la portée du parent sera la même que celle de l'environnement global, bien que dans certains cas avec de nombreuses fonctions imbriquées, ce ne sera pas le cas.
LunaticSoul

5
Pourquoi est-il assignpréféré <<-?
Jasha

4
@Jasha <<-recherchera dans la chaîne de boîtiers jusqu'à l'environnement global et affectera la première variable correspondante qu'il trouve. En théorie, si vous avez une fonction f()imbriquée dans une fermeture g()et aexiste dans g(), l'utilisation de a <<-in f()affectera ain g(), et non l'environnement global. Cependant, c'est souvent ce que vous voulez.
Bob

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.