CommencerCommencer gratuitement

Appliquer des fonctions qui renvoient NULL

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

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

Cet appel renvoie en fait une liste, de la même taille que la liste en entrée, contenant uniquement des valeurs NULL. En revanche, appeler

str(TRUE)

seul affiche uniquement la structure du booléen dans la console, et non NULL. C’est parce que str() utilise invisible() en interne, qui renvoie une copie invisible de la valeur de retour, NULL dans ce cas. Cela évite son affichage lorsque le résultat de str() n’est pas affecté.

Que renverra le bloc de code suivant (split_low est déjà disponible dans l’espace de travail) ? Essayez d’anticiper 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])
  }
})

Cet exercice fait partie du cours

R niveau intermédiaire

Afficher le cours

Exercice interactif pratique

Passez de la théorie à la pratique avec l’un de nos exercices interactifs

Commencer l’exercice