Rappelez-vous l'exemple suivant du chapitre 2:
Considérez une ligne en particulier:
Ça a l'air totalement inoffensif, hein? Et bien non. En fait, c'est scandaleux! Comment diable pouvons-nous assigner une valeur au résultat d'un appel de fonction? La reso¬lution à cet étrange état de choses réside dans la notion R de fonctions de remplacement.
La ligne précédente de code R est en fait le résultat de l'exécution de ce qui suit:
Non, ce n'est pas une faute de frappe. L'appel ici est en effet à une fonction nommée noms <- (). (Nous devons insérer les guillemets en raison des caractères spéciaux impliqués.)
Qu'est-ce qui est considéré comme une fonction de remplacement?
Toute instruction d'affectation dans laquelle le côté gauche n'est pas simplement un identifiant (c'est-à-dire un nom de variable) est considérée comme une fonction de remplacement. En rencontrant ceci:
R essaiera d'exécuter ceci:
Notez le "try" dans la phrase précédente. L'instruction échouera si vous n'avez pas précédemment défini g <- (). Notez que la fonction de remplacement a un argument de plus que la fonction d'origine g (), une valeur d'argument nommée, pour les raisons expliquées dans cette section.
Dans les chapitres précédents, vous avez vu cette déclaration innocente:
Le côté gauche n'est pas un nom de variable, il doit donc être une fonction de remplacement, et en effet, il est comme suit.
Les opérations d'indexation sont des fonctions. La fonction "[" () sert à lire des éléments vectoriels et "[<-" () est utilisé pour écrire. Voici un exemple:
Encore une fois, cet appel compliqué dans cette ligne:
exécute simplement ce qui se passe dans les coulisses lorsque nous exécutons ceci:
Nous pouvons facilement vérifier ce qui se passe comme: