Aan de slagGa gratis aan de slag

Functies toepassen die NULL retourneren

In alle voorgaande oefeningen werd ervan uitgegaan dat de functies die op vectoren en lijsten werden toegepast ook daadwerkelijk een zinvol resultaat teruggaven. De functie tolower() geeft bijvoorbeeld de strings terug met de letters in kleine letters. Dat is niet altijd zo. Stel dat je de structuur van elk element van een lijst wilt weergeven. Je kunt hiervoor de functie str() gebruiken, die NULL retourneert:

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

Deze aanroep retourneert eigenlijk een lijst, even groot als de invoerlijst, met allemaal NULL-waarden. Anderzijds geeft

str(TRUE)

op zichzelf alleen de structuur van de logische waarde weer in de console, niet NULL. Dat komt omdat str() achter de schermen invisible() gebruikt, dat een onzichtbare kopie van de geretourneerde waarde teruggeeft, in dit geval NULL. Daardoor wordt het niet afgedrukt wanneer het resultaat van str() niet wordt toegewezen.

Wat geeft het volgende codeblok terug (split_low is al beschikbaar in de werkruimte)? Probeer eerst over het resultaat na te denken voordat je het simpelweg in de console uitvoert!

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

Deze oefening maakt deel uit van de cursus

R voor gevorderden

Cursus bekijken

Praktische interactieve oefening

Zet theorie om in actie met een van onze interactieve oefeningen.

Begin met trainen