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
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
lapplyom naar een anonieme versie van de functieselect_second(). - Verwijder beide definities van
select_first()enselect_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)