Aan de slagBegin gratis

lapply en anonieme functies

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

Eerder leerde je dat functies in R op zichzelf staande objecten zijn. Dat betekent dat ze niet automatisch aan een naam gekoppeld zijn. Wanneer je een function maakt, kun je de toekenningsoperator gebruiken om de functie een naam te geven. Het is echter ook heel goed 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

Bekijk cursus

Oefeninstructies

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

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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