CommencerCommencer gratuitement

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

Afficher le cours

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 à lapply pour utiliser une version anonyme de la fonction select_second().
  • Supprimez les définitions de select_first() et select_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)
Modifier et exécuter le code