Zacznij terazZacznij za darmo

lapply i funkcje anonimowe

Pisanie własnych funkcji i używanie ich wewnątrz lapply() to prawdziwe osiągnięcie! Definiowanie funkcji tylko po to, by użyć ich raz, bywa jednak zbędne. Właśnie dlatego w R można korzystać z tzw. funkcji anonimowych.

Wiesz już, że funkcje w R są pełnoprawnymi obiektami. Oznacza to, że nie są automatycznie powiązane z żadną nazwą. Tworząc funkcję, możesz użyć operatora przypisania, aby nadać jej nazwę – ale możesz też tego nie robić. Funkcja bez nazwy to właśnie funkcja anonimowa:

# Funkcja nazwana
triple <- function(x) { 3 * x }

# Funkcja anonimowa z taką samą implementacją
function(x) { 3 * x }

# Użycie funkcji anonimowej wewnątrz lapply()
lapply(list(1,2,3), function(x) { 3 * x })

split_low jest już dla ciebie zdefiniowane.

To ćwiczenie jest częścią kursu

Intermediate R

Zobacz kurs

Instrukcje do ćwiczenia

  • Przekształć pierwsze wywołanie lapply() tak, aby używało funkcji anonimowej robiącej to samo.
  • W podobny sposób zamień drugie wywołanie lapply na wersję używającą anonimowej funkcji zamiast select_second().
  • Usuń definicje obu funkcji – select_first() i select_second() – ponieważ nie są już potrzebne.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod