Utiliser <- plutôt que = en R

Plus j'avance sur R, plus je me pose des questions - existensielles - sur le fonctionnement et les "astuces" pour R. J'écrirais sûrement une petite série sur le sujet et aujourd'hui je commence par la différence entre <- et = en R.

Alors en réalité :

The operators <- & = assign into the environment in which they are evaluated. The operator <- can be used anywhere, whereas the operator = is only allowed at the top level (e.g., in the complete expression typed at the command prompt) or as one of the subexpressions in a braced list of expressions.

Soit en français :

Les opérateurs <- et =sont affectés à 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 tapée à l'invite de commande) ou comme l'une des sous-expressions d'une liste entrelacée d'expressions.

La meilleure explication a pour moi été trouvée sur Stackoverflow (voir les sources ci-dessous) :

median(x = 1:10)
x
Error: object 'x' not found

Dans ce cas, x est déclaré dans le cadre de la fonction, il n'existe donc pas dans l'espace de travail utilisateur.

median(x <- 1:10)
x    
[1]  1  2  3  4  5  6  7  8  9 10

In this case, x is declared in the user workspace, so you can use it after the function call has been completed.

Sources :

  • [https://www.r-bloggers.com/assignment-operators-in-r-%E2%80%98%E2%80%99-vs-%E2%80%98-%E2%80%99/]()
  • [https://stackoverflow.com/questions/2271575/whats-the-difference-between-and-in-r]()
  • [https://stackoverflow.com/questions/1741820/what-are-the-differences-between-and-in-r]()
  • [https://www.rdocumentation.org/packages/base/versions/3.5.3/topics/assignOps]()

THEME_QUARK.BLOG.ITEM.NEXT_POST