lapply și funcții anonime
Să îți scrii propriile funcții și apoi să le folosești în lapply() este o realizare notabilă! Totuși, a defini o funcție doar pentru a o folosi o singură dată este cam mult, nu-i așa? De aceea, în R poți folosi așa-numitele funcții anonime.
Ai învățat anterior că funcțiile din R sunt obiecte de sine stătătoare. Asta înseamnă că nu sunt legate automat de un nume. Când creezi o funcție, poți folosi operatorul de atribuire pentru a-i da un nume. Este perfect posibil, însă, să nu îi atribui niciun nume. Aceasta se numește funcție anonimă:
# Named function
triple <- function(x) { 3 * x }
# Anonymous function with same implementation
function(x) { 3 * x }
# Use anonymous function inside lapply()
lapply(list(1,2,3), function(x) { 3 * x })
split_low este deja definit pentru tine.
Acest exercițiu face parte din cursul
R intermediar
Instrucțiuni pentru exercițiu
- Transformă primul apel al
lapply()astfel încât să folosească o funcție anonimă care face același lucru. - În mod similar, convertește al doilea apel al
lapplypentru a folosi o versiune anonimă a funcțieiselect_second(). - Elimină ambele definiții ale funcțiilor
select_first()șiselect_second(), deoarece nu mai sunt necesare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)