web-dev-qa-db-fra.com

Quelle est la différence entre `=` et `<-` dans R?

Duplicate possible:
Opérateurs d'assignation dans R: '=' et '<-'

J'utilise R 2.8.1 et il est possible d'utiliser les deux = et <- en tant qu'opérateurs d'assignation de variable. Quelle est la différence entre eux? Lequel devrais-je utiliser?

100
Mehper C. Palavuzlar

De ici :

Les opérateurs <- et = affectent l'environnement dans lequel ils sont évalués. L'opérateur <- peut être utilisé n'importe où, alors que l'opérateur = n'est autorisé qu'au niveau supérieur (par exemple, dans l'expression complète saisie à l'invite de commande) ou en tant que sous-expression dans une liste d'expressions en hachures.

58
Mark Byers

Lecture de "Introduction aux méthodes de Monte Carlo avec R", de Robert et Casella:

"L'opérateur d'affectation est =, à ne pas confondre avec ==, qui est l'opérateur booléen d'égalité. Un opérateur de tâche plus ancien est <- et, pour des raisons de compatibilité, il reste fonctionnel, mais il devrait être ignoré pour assurer une programmation plus propre. (Comme l'a souligné Spector, P. (2009). "Manipulation de données avec R" - Section 8.7., Une exception est l'utilisation de system.time, puisque = est ensuite utilisé pour identifier les mots clés)

Une caractéristique trompeuse de l'opérateur d'affectation <- se trouve dans des expressions booléennes telles que

> if (x[1]<-2) ...

qui est supposé tester si x [1] est inférieur à -2 mais finit par allouer 2 à x [1], en effaçant sa valeur actuelle! Notez également que l'utilisation de

> if (x[1]=-2) ...

par erreur au lieu de (x [1] == - 2) a la même conséquence. "

14
George Dontas