przewodnikPoPakiecieR9

przewodnikPoPakiecieR9



70 pnzulłrry

2.1.3 Listy

Podobnie Jak wektory, listy są ciągami obiektów. Pierwsza różnica pomiędzy listar, a wektorami polega na typie elementów składowych, w listach każdy element mobyć innego typu. Druga różnica, to możliwość odwoływania się do elementów listy; za pomocą nazwy tego elementu (elementy wektora mogą posiadać nazwy, nie j-jednak możliwe odwoływanie się do tych elementów z użyciem operatora $).

>    tt tworzymy listę trzech elementów o różnych typach

>    lista « list(1:3, imię - "Bartek", nazwisko = "Nowak", czyKobieta » F)

>    # odwołujemy 3ię przez nazwę do elementu drugiego

>    lista$imie [1] "Bartek"

>    * odwołujemy się do pierwszego elementu, wynikiem jest lista

>    lista[l]

CW3 tl] 123

>    t do elementów list odwołujemy się nawiasami podwójnymi [[]]

>    listaCCl]]

Cl] 12 3    ,,

>    # pierwszy ^element listy to wektor, możemy więc użyć takiego zapisu

>    listaCCl]] C2]

C13 2

>    # funkcja lapplyO pozwala na wykonanie określonego działania (tutaj

zamiana liter na duże), na każdym z elementów listy

>    lapply(lista,toupper)

CCI]]

Cl] "1" "2“ "3"

$imie

tl] "BARTEK"

SnazwiBko Cl] "NOWAK"

SczyKobieta Cl] "FAŁSE"

Funkcja lapply(base) o argumentach X i FUN pozwala na wykonanie funkcji FUN, dla każdego elementu listy X. Często wygodnie jest w miejsce argumentu FUN użyć funkcji anonimowych. Wynikiem działania funkcji lapplyO jest lista, której poszczególne elementy są wynikami działania funkcji FUN na kolejnych elementach^ listy X. Jeżeli zostaną podane dodatkowe argumenty do funkcji lapplyO, to zostaną; one przekazane do funkcji FUN.

Wynikiem funkcji lapplyO jest lista. Jeżeli w wyniku chcielibyśmy otrzymać wektor, to jednym z rozwiązań jest zamiana listy na wektor funkcją unlist(base). Inną możliwością jest użycie funkcji sapply(base), która działa podobnie do funk-4 cji lapplyO, ale ma dodatkowy argument simplify, który jeżeli przyjmuje warto TRUE (domyślnie), to wynik w miarę możliwości (jeżeli jest zgodność typów elemen-. tów listy) jest upraszczany do wektora. Inne funkcje z rodziny *apply() wymieniona są w tabeli 2.3. Poniżej przedstaw lamy kilka przykładów użycia tych funkcji. Są one często wykorzystywane przy przet warzaniu danych w macierzach i ramkach danych, tak więc jeszcze do nich wrócimy.

Tabela 2.3: Funkcje z rodziny *apply() z pakietu bose

Wielowymiarowy odpowiednik funkcji sapplyO. Argumentami tej funkcji jest funkcja f un oraz kilka (dwa lub więcej) wektorów o tej samej długości. Wynikiem jest wektor, w którego pozycji i jest wynik fimkcji fun wywołanej z argumentami określonymi przez elementy o indeksach i pozostałych argumentów funkcji mapplyO.


nappiy(fun

rapply(x, fun) Rekursywna wersja lapplyO przydatna, gdy mamy do czynienia z listą list lub innymi, zagnieżdżonymi strukturami. eapply(env, fun) Aplikuje funkcje fun do każdego elementu wskazanego środowiska (przestrzeni nazw) env.

tapply(z, index, Wykonuje funkcje fun dla podzbiorów wektora z określone-fun)    go przez poziomy zmiennej czynnikowej index. Przydatna

funkcja, gdy chcemy policzyć pewną statystykę w podgrupach, np. średni wiek w podziale na pleć. W tym przypadku x będzie wektorem z wiekiem, index wektorem z płcią a fun będzie funkcją mean).

repiicateCn, expr) Ta funkcja powoduje n-krotne wykonanie polecenia expr.

Wynikiem jest lista, której kolejne elementy zawierają war- i tość zwróconą w wyniku wywołania wyrażenia expr. Przydatna funkcja w sytuacji gdy w poleceniu jest jakaś rando-mizacja (np. do generowania rozkładu statystyki testowej). aggregate(x, by, Wykonuje funkcję fun dla kolumn macierzy x określonego fun)    przez poziomy zmiennych czynnikowych zapisanych w liście

by. Podobna w działaniu do tapplyO, przy czym argument x może być macierzą (w tapplyO był wektorem) a grupowanie w podpopulacjach może być określone przez więcej niż jedną zmienną (argument by może określać więcej zmiennych grupujących).

by(x, index, fun)


Odpowiednik funkcji tapplyO z tą różnicą, że x może być macierzą, a wynik tej funkcji jest specyficznie wyświetlany.

■ > # wyznaczamy średnią wartość cechy w podpopulacjach, zmienna cecha to macierz o dwóch dwudziestoelementowych kolumnach

>    cecha => cbindfrunif (20), rnorm(20))

>    dlm(cecha)

,:\ W 20 2

>    ż nazwijmy kolumny macierzy cecha

>, ćolnames (cecha) - c("cecha A”, "cecha B")

>    # do podziału no grupy użyjemy zmiennych czynnikowych, utworzonych

.'V;:    z użyciem funkcji gl()

>    (podpopulacje • gl(2,10,labels • e("H","K")))

'tl] MMMMMMMMMMKKKKKKKKKK T.evela: H K

>    ż określmy jeszcze jedną zmienną czynnikową, też o 20 elementach

>    (grupy    - gl(2,l,20,labelo - <;("»", "C")))

tl] BCBCBCBCBCBCBCBCHCHC

(-evels: B C


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR9 m Łagodne wprowadzenie do R • Lista. Podobnie jak wektor, lista to również u
Przestrzeń otaczającą magnes albo przewodnik z prądem nazywamypolww magnetycznym, podobnie jak przes
Tekstury skał metamorficznych, podobnie jak skał magmowych, są bezładne lub kierunkowe: łupkowe, war
scan030 podobnie jak czynili lo ludzie-żywiciele rodzin. Pierwszy wolumin Grandvillc*a zamykają słow
SDC13465 13 podobni* Jak inne Jeżyki, stanowi już właściwie pierwszy stopień konkretyzacji Jeżyka id
61450 Obraz1 (24) 211 Glikozydy, podobnie jak inne acetale, są dość trwałymi związkami. Wiązanie gl
DSC00590 (8) cy. W Lyoaie nie ma podobnych jak u nas dorożek, są tylko fiakry, zwane omnibus, które
Teatr Narodowy w Warszawie Podobnie jak przed rozbiorami Teatr Narodowy był pierwszą sceną
tfwsk6 Podobnie jak nazwa tablicy jest wskaźnikiem na pierwszy element, nazwa funkcji jest wskaźniki
Obraz (1144) k12. AMINY Aminy są pochodnymi amoniaku podobnie jak alkohole i etery są pochodnymi wod
Obraz1 (33) 218 Glikozydy, podobnie jak inne acetale, są dość trwałymi związkami. Wiązanie glikozyd
Obraz (1144) k12. AMINY Aminy są pochodnymi amoniaku podobnie jak alkohole i etery są pochodnymi wod

więcej podobnych podstron