lapply et fonctions anonymes
Écrire vos propres fonctions, puis les utiliser dans lapply(), c'est tout un accomplissement ! Mais définir des fonctions pour ne les utiliser qu'une seule fois, c'est un peu excessif, non ? C'est pour ça que vous pouvez utiliser des fonctions anonymes en R.
Vous avez vu plus tôt qu'en R, les fonctions sont des objets à part entière. Elles ne sont donc 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.
Cette activité fait partie du cours
R intermédiaire
Instructions de l’exercice
- Transformez le premier appel à
lapply()pour qu'il utilise une fonction anonyme qui fait la même chose. - De la même façon, convertissez le deuxième 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 ce code d’exemple.
# 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)