CommencezCommencez gratuitement

Appliquer des fonctions qui retournent NULL

Dans tous les exercices précédents, on supposait que les fonctions appliquées sur des vecteurs et des listes retournaient un résultat pertinent. Par exemple, la fonction tolower() retourne simplement les chaînes avec les caractères en minuscules. Ce ne sera pas toujours le cas. Supposons que vous vouliez afficher la structure de chaque élément d'une liste. Vous pourriez utiliser la fonction str() pour cela, qui retourne NULL :

lapply(list(1, "a", TRUE), str)

Cet appel retourne en fait une liste, de la même taille que la liste d'entrée, qui contient uniquement des valeurs NULL. En revanche, appeler

str(TRUE)

seul affiche uniquement la structure du booléen dans la console, pas NULL. C'est parce que str() utilise invisible() en arrière-plan, ce qui retourne une copie invisible de la valeur de retour, NULL dans ce cas. Cela empêche l'impression lorsque le résultat de str() n'est pas assigné.

Qu'est-ce que le bloc de code suivant retournera (split_low est déjà disponible dans l'espace de travail) ? Essayez de raisonner sur le résultat avant de simplement l'exécuter dans la console !

lapply(split_low, function(x) {
  if (nchar(x[1]) > 5) {
    return(NULL)
  } else {
    return(x[2])
  }
})

Cette activité fait partie du cours

R intermédiaire

Voir le cours

Exercice interactif pratique

Passez de la théorie à l’action grâce à l’un de nos exercices interactifs

Commencer l’exercice