CommencerCommencer gratuitement

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

Afficher le cours

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 fonction select_second().
  • Supprimez les deux définitions de select_first() et select_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)
Modifier et exécuter le code