lapply a anonymní funkce
Psát vlastní funkce a pak je používat uvnitř lapply() je pěkný výkon! Jenže definovat funkci jen proto, aby ses ji použil/a jednou, je trochu zbytečné, že? Proto v R existují takzvané anonymní funkce.
V předchozích lekcích sis ukázal/a, že funkce jsou v R plnohodnotné objekty. To znamená, že nejsou automaticky svázané s žádným názvem. Když funkci vytvoříš, můžeš jí název přiřadit pomocí operátoru přiřazení – ale nemusíš. Taková funkce bez názvu se nazývá anonymní:
# Pojmenovaná funkce
triple <- function(x) { 3 * x }
# Anonymní funkce se stejnou implementací
function(x) { 3 * x }
# Použití anonymní funkce uvnitř lapply()
lapply(list(1,2,3), function(x) { 3 * x })
split_low je už pro tebe definován.
Toto cvičení je součástí kurzu
Intermediate R
Pokyny k cvičení
- Upravte první volání
lapply()tak, aby místo pojmenované funkce používalo anonymní funkci se stejnou logikou. - Stejným způsobem převeď druhé volání
lapplyna anonymní verzi funkceselect_second(). - Odstraň definice obou funkcí –
select_first()iselect_second()– protože je už nepotřebuješ.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)