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 :

Article suivant