Fonctions anonymes
Comme l'a souligné plusieurs points de ce livre, le but de la fonction R
Function () est de créer des fonctions. Par exemple, considérez ce code:
Inc <- function (x) return (x + 1)
Il ordonne à R de créer une fonction qui ajoute 1 à son argument et ensuite
Attribue cette fonction à inc. Cependant, cette dernière étape - l'affectation - n'est pas
Toujours pris. Nous pouvons simplement utiliser l'objet de fonction créé par notre appel à
Function () sans nommer cet objet. Les fonctions dans ce contexte sont
Appelés anonymes, puisqu'ils n'ont aucun nom. (C'est quelque peu trompeur,
Car même les fonctions non anonymes ont un nom dans le sens qu'une
La variable les indique.)
Les fonctions anonymes peuvent être utiles si elles sont courtes
Sont appelés par une autre fonction. Revenons à notre exemple d'utilisation.
Dans la section 3.3:

> Z
[, 1] [, 2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> F <- fonction (x) x / c (2,8)
> Y <- appliquer (z, 1, f)
> Y
[, 1] [, 2] [, 3]
[1,] 0,5 1.000 1.50
[2,] 0,5 0,625 0,75
Ignorons l'intermédiaire, c'est-à-dire ignorer l'affectation en f-using
Une fonction anonyme dans notre appel à appliquer (), comme suit:
> Y <- appliquer (z, 1, fonction (x) x / c (2,8))
> Y
[, 1] [, 2] [, 3]
[1,] 0,5 1.000 1.50
[2,] 0,5 0,625 0,75
Qu'est-ce qui s'est passé ici? Le troisième argument formel à appliquer () doit
Être une fonction, ce qui est exactement ce que nous avons fourni ici, puisque la valeur de retour
De function () est une fonction!
Faire de cette façon est souvent plus clair que de définir la fonction à l'extérieur.
Bien sûr, si la fonction est plus compliquée, cette clarté n'est pas
Atteint.