Aan de slagGa gratis aan de slag

lapply en anonieme functies

Je eigen functies schrijven en die daarna binnen lapply() gebruiken is een mooie prestatie! Maar functies definiëren om ze maar één keer te gebruiken is wat overdreven, toch? Daarom kun je in R zogeheten anonieme functies gebruiken.

Eerder heb je geleerd dat functies in R objecten op zichzelf zijn. Dat betekent dat ze niet automatisch aan een naam gekoppeld zijn. Wanneer je een functie maakt, kun je de toekenningsoperator gebruiken om de functie een naam te geven. Het is echter ook prima mogelijk om de functie geen naam te geven. Dit heet een anonieme functie:

# Benoemde functie
triple <- function(x) { 3 * x }

# Anonieme functie met dezelfde implementatie
function(x) { 3 * x }

# Gebruik een anonieme functie binnen lapply()
lapply(list(1,2,3), function(x) { 3 * x })

split_low is voor je gedefinieerd.

Deze oefening maakt deel uit van de cursus

R voor gevorderden

Cursus bekijken

Oefeninstructies

  • Pas de eerste aanroep van lapply() zo aan dat er een anonieme functie wordt gebruikt die hetzelfde doet.
  • Zet op dezelfde manier de tweede aanroep van lapply om naar een anonieme versie van de functie select_second().
  • Verwijder beide definities van select_first() en select_second(), omdat ze niet meer nodig zijn.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren