fonctions lapply et anonymes
Écrire vos propres fonctions et les utiliser à l'intérieur de lapply()
est un véritable exploit ! Mais définir des fonctions pour ne les utiliser qu'une seule fois, c'est un peu exagéré, non ? C'est pourquoi vous pouvez utiliser des fonctions dites anonymes dans R.
Précédemment, vous avez appris que les fonctions dans R sont des objets à part entière. Cela signifie qu'ils ne sont pas automatiquement liés à un nom. Lorsque vous créez une fonction, vous pouvez utiliser l'opérateur d'affectation pour lui donner un nom. Il est cependant tout à fait possible de ne pas donner de nom à la fonction. C'est ce qu'on appelle une fonction anonyme :
# Named function
triple <- function(x) { 3 * x }
# Anonymous function with same implementation
function(x) { 3 * x }
# Use anonymous function inside lapply()
lapply(list(1,2,3), function(x) { 3 * x })
split_low
est défini pour vous.
Cet exercice fait partie du cours
Intermédiaire R
Instructions
- Transformez le premier appel de
lapply()
de telle sorte qu'il utilise une fonction anonyme qui fait la même chose. - De la même manière, convertissez le deuxième appel de
lapply
pour utiliser une version anonyme de la fonctionselect_second()
. - Supprimez les deux définitions de
select_first()
etselect_second()
, car 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)