Funkcje lapply(), sapply() i vapply() działają z wektorami, w tym listami i wyrażeniami. Jeśli X nie jest listą, X jest wymuszane na liście. Elementy muszą mieć odpowiedni tryb dla zastosowanej funkcji. Funkcja lapply () jest najprostsza z zaledwie dwoma argumentami i dowolnymi argumentami funkcji, która ma zostać zastosowana. Funkcja sapply () przyjmuje cztery argumenty plus wszelkie dodatkowe argumenty dla funkcji, która ma zostać zastosowana. Funkcja vapply () również pobiera cztery argumenty plus dodatkowe, aby funkcja została zastosowana.
Funkcja lapply()
Funkcja lapply () przyjmuje argumenty X i FUN oraz wszelkie dodatkowe argumenty funkcji FUN. Funkcja FUN jest stosowana do każdego elementu wektora lub każdego elementu najwyższego poziomu listy. Rezultatem jest lista. Oto przykład:
> b.list = lista (1: 7,3: 4)
> b.list
[[1]]
[1] 1 2 3 4 5 6 7
[[2]]
[1] 3 4
> lapply (b.list, sum)
[[1]]
[1] 28
[[2]]
[1] 7
Operatory arytmetyczne można wprowadzać, umieszczając je w cudzysłowie.
Na przykład:
> lapply (1: 2, “^”, 2)
[[1]]
[1] 1
[[2]]
[1] 4
Funkcja sapply()
Funkcja sapply () działa również na wektorach, w tym na listach i wyrażeniach. Funkcja przyjmuje argumenty X i FUN, a następnie wszystkie argumenty do FUN, po których następują argumenty simplify i USE.NAMES. Argument simplify może być logiczny lub ciąg znaków „tablica”. Argument simplify mówi sapply (), aby uprościć listę do wektora lub macierzy, jeśli jest TRUE, i do tablicy, jeśli jest ustawiona na „tablica”. Żadne uproszczenie nie jest wykonywane, jeśli ustawiona jest wartość FALSE. W przypadku FALSE zwracana jest lista. Wartość PRAWDA jest wartością domyślną. Argument USE.NAMES jest argumentem logicznym. W przypadku obiektu o znaku trybu argument USE.NAMES mówi sapply (), aby używała elementów obiektu jako nazw wyniku. Wartość domyślna to TRUE. Oto przykład:
> lista ab
jeden dolar
[1] 1 2 3 4 5
dwa dolary
[1] 3 4 5 6 7
> sapply (lista abonentów, suma)
jeden dwa
15 25
> a.char
[1] “a7” “a8” “a9” “a10”
> sapply (a.char, wklej, “b”, sep = “”)
a7 a8 a9 a10
„a7b” „a8b” „a9b” „a10b”
> sapply (a.char, wklej, “b”, sep = “”, USE.NAMES = F)
[1] „a7b” „a8b” „a9b” „a10b”
Funkcja vapply()
Funkcja vapply () przyjmuje argumenty X, FUN, FUN.VALUE, dowolne argumenty do FUN i USE.NAMES, w tej kolejności. Argument FUN.VALUE jest strukturą danych wyjściowych funkcji. Struktura jest strukturą wynikającą z zastosowania FUN do pojedynczego elementu X. W strukturze zastosowano atrapy wartości prawidłowego trybu. Liczba i tryb atrapy elementów muszą być poprawne. Wszelkie dodatkowe argumenty za FUN są umieszczane po FUN.VALUE. Domyślna wartość USE.NAMES to TRUE. Oto przykład:
> set.seed (382765)
> e
[1] 1 2
> vapply (e, rnorm, matrix (.1,2,2), n = 4, sd = 1)
,, 1
[, 1] [, 2]
[1,] 1,701435 1,1422971
[2,] 2,068151 0,9604146
,, 2
[, 1] [, 2]
[1,] 0,3541925 1,186276
[2,] 2,6841000 1,745577
W tym przykładzie e jest wektorem średnich wprowadzonych do funkcji rnorm (), a pozostałe argumenty funkcji rnorm () to n = 4 i sd = 1. Funkcja vapply () zwraca tablicę, macierz lub wektor obiektów typu podanego przez argument FUN.VALUE. Więcej informacji o lapply (), sapply () i vapply () można znaleźć, wpisując? Lapply po znaku zachęty R.