lapply et fonctions anonymes
Écrire vos propres fonctions puis les utiliser dans lapply(), c’est déjà une belle réussite ! Mais définir des fonctions pour ne les utiliser qu’une seule fois, c’est un peu excessif, non ? C’est pourquoi vous pouvez utiliser des fonctions anonymes en R.
Vous avez vu précédemment que les fonctions en R sont des objets à part entière. Cela signifie qu’elles ne sont pas automatiquement liées à un nom. Quand vous créez une fonction, vous pouvez utiliser l’opérateur d’affectation pour lui donner un nom. Il est toutefois tout à fait possible de ne pas nommer la fonction. On parle alors de fonction anonyme :
# Fonction nommée
triple <- function(x) { 3 * x }
# Fonction anonyme avec la même implémentation
function(x) { 3 * x }
# Utiliser une fonction anonyme dans lapply()
lapply(list(1,2,3), function(x) { 3 * x })
split_low est déjà défini pour vous.
Cet exercice fait partie du cours
R niveau intermédiaire
Instructions
- Transformez le premier appel à
lapply()pour qu’il utilise une fonction anonyme qui fasse la même chose. - De la même manière, convertissez le second appel à
lapplypour utiliser une version anonyme de la fonctionselect_second(). - Supprimez les définitions de
select_first()etselect_second(), puisqu’elles ne sont plus utiles.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# split_low has been created for you
split_low
# Transform: use anonymous function inside lapply
select_first <- function(x) {
x[1]
}
names <- lapply(split_low, select_first)
# Transform: use anonymous function inside lapply
select_second <- function(x) {
x[2]
}
years <- lapply(split_low, select_second)