R permet de cession via <-
et =
.
Alors qu'il y a des différences subtiles entre les deux opérateurs d'affectation, il semble y avoir un large consensus <-
est le meilleur choix que l' =
, comme =
est également utilisé comme opérateur de cartographie des valeurs des arguments, et donc son utilisation peut conduire à des déclarations ambiguës. La suite de l'illustre bien:
> system.time(x <- rnorm(10))
user system elapsed
0 0 0
> system.time(x = rnorm(10))
Error in system.time(x = rnorm(10)) : unused argument(s) (x = rnorm(10))
En fait, le Google code interdit l'utilisation de =
pour l'affectation (voir les commentaires relatifs à cette réponse pour un converse de la vue).
J'ai aussi presque exclusivement utiliser <-
comme opérateur d'affectation. Cependant, le presque dans la phrase précédente est la raison pour laquelle cette question. Lors de l' =
agit comme opérateur d'affectation dans mon code, il est toujours accidentelle et si elle conduit à des problèmes de ces sont généralement difficiles à repérer.
Je voudrais savoir si il existe un moyen de désactiver l'affectation via =
et soit R jeter une erreur tout moment, =
est utilisé pour l'affectation.
De façon optimale, ce comportement ne se produit que pendant le code de l'Environnement Mondial, comme il peut y avoir de code ci-jointe espaces de noms qui utilise =
pour l'affectation et ne doit pas se briser.
(Cette question a été inspiré par une discussion avec Jonathan Nelson)