przewodnikPoPakiecieR5

przewodnikPoPakiecieR5



82 imzuHiry

Gjpł*|


BBH

> funkcje <- funccion (n, a> ( 4 for ( Ł m l:n )

funkcja R P di tor iffl|fX~) 1

♦ for | j ln l:r. i {

functioa (n, m) (

♦ coc(poste ia,b,“Nd*))

for ( ł lo i:n )

+ >

for I j U l:a > (

♦ )

c*t (patem (a, ta, m\om) )

> faz(funkcjo)

>

>

Rysunek 2.1: Przykładowe wywołanie funkcji fix(). Korzystając z tej funkcji możemy^ łatwo edytować ciało funkcji nie wpisując jej otl początku do R

>    # używając funkcji str() można zobaczyć jakie pola oraz o jakich

rozmiarach i wartościach ma określony obiekt

>    tmphist = hi_s.t(l: 10,plot=F)

>    classftmphisO [1] "histogram"

>    str(tmphist)

List of 7

num [ 1: 6J 0 2 int [1:5] 2 2


4 6 8 10 2 2 2 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 1 3 5 7 9


$ breaks $ counts

num [1:5] num [1:5] chr *1:10" logi TRUE - attr(», “elass")= chr "histogram"

>    # funkcja object.sizeO wyznacza rozmiar w bajtach danego obiektu

>    object.size(tmphist)

[1] 976


$ intenśities: num [1:53 $ density $ mids $ mamo $ ecjuidist

2.1.7 Klasy

Jeżeli wynikiem działania funkcji zbiór ma być zbiór wartości różnych typów, wy-r|8 godnie jest je przekazać jako pola listy. Listy będąc agregatami wartości dowolnych : | typów pełnią w R podobną funkcję jak klasy lub rekordy w innych językach progra- -M mowania. Taki typ klas w R nazywany jest klasami S3.

W R istnieje też inny sposób przekazywania zbiorów wartości różnych typów..]® Wzorowany na klasach S4 znanych z języka S, jest to sposób dostępu do elementów i? klasy bliski językom obiektowym. O ile pomiędzy dwoma listami nie można okre-ślić żadnych formalnych relacji, nie można określić też ograniczeń na typy i liczbę | elementów list, tak w przypadku klas S4 takie ograniczenia na wartości składowe 'Ą obiektów można narzucać.

Nową klasę S4 konstruuje się poleceniem setClass(base). Tworząc klasę określamy jej nazwę oraz definiujemy jej reprezentacje. Więcej informacji o tym poleceniu znajduje się poniżej. Ze stworzoną klasą stowarzyszone są następujące pojęcia:

•    Sloty. Sloty to elementy (pola) klasy. Dostęp do slotów możliwy jest dzięki operatorowi 6 oraz dzięki funkcji slot(methods). W różnych slotach danej klasy przechowywane mogą być wartości różnych typów, jednak w odpowiadających sobie slotach różnych obiektów tej samej klasy muszą być przechowywane obiekty tego samego typu.

W przeciwieństwie do elementów list ze slotów można korzystać tylko podając ich nazwę. Sloty nie mogą być indeksowane liczbami naturalnymi.

•    Nadklasy (ang. superclass, inne stosowane nazwy: klasa nadrzędna, bazowa). Pomiędzy klasami można określić relację nadrzędności. Jeżeli dwie klasy są ze sobą w relacji, to jedna jest rozszerzeniem drugiej. Oznacza to między innymi, że klasa rozszerzająca ma wszystkie sloty klasy rozszerzanej.

•    Obiekty. Nowe instancje klas tworzone są funkcją newCmethods). Obiekty two-; rzone są na bazie prototypu, który musi być określony dla każdej klasy. Zawartość obiektu jest inicjowana funkcją initialize(methods) tej klasy.

Poniżej przedstawimy kilka przykładów działania na klasach S4. Osoby chcące poszerzyć swoją wiedzę w tym temacie powinny sięgnąć do książki [6]. Rozpocznijmy od definicji nowej klasy, której obiekty będą miały dwa pola: imię i wiek.

>    setClassCosoba" , representation(iraie="character", wiek="numeric”))

C13 "osoba"

W powyższej deklaracji określiliśmy nazwę klasy oraz strukturę jej zawartości, czyli reprezentację klasy. Klasa składa się z dwóch slotów przechowujących odpowiednio łańcuch znaków i liczbę. Możemy teraz tworzyć nowe obiekty tej klasy.

>    (obiaktOsoba <- newCosoba", imie-"Przemek", viek«27))

An object of class Nosoba"

Slot "imię":

[11 "Przemek"

Slot "wiek":

[13 27

Na slotach klasy możemy wykonywać dowolne operacje, póki są one zgodne z deklaracją klasy. Dostęp do slotów jest możliwy dzięki operatorowi 3 oraz metodzie slotf).

>    # poprawna operacja

>    obiektOsobafflimie * "Przemysław"

>    H niepoprawna operacja, to nie jest tańcch znaków'.

>    obiektOsobaOimie - 13

Error in checkSlotAssignment(object, name, value) :

assignment of an object of class "numeric" is not valid


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR6 ■II l.iiHodne wprowadzenie do R 1.(1.1.3 Funkcja switch(base) m W przypadku
NOWOŚCI Z GS1 82 Efektywne narzędzia usprawniające funkcjonowanie firm. Etykiety logistyczne i sposo
Matematyka 2 3 82 II. Rachunek różniczkowy funkcji wielu zmiennyi hy 2 O x Qlo ,1&) / X Rys 3.
img046 Rozdział 8 81Seks i seksualność Zagadnienia ogólne 82 Seksualność 83 Męskie funkcje seks
Pomiar promieniowanych i przewodzonych zaburzeń elektromagnetycznych - 9 natężenia pola w funkcji
przewodnikPoPakiecieR4 Przeczytaj zanim kupisz tacją funkcji i argumentów graficznych, dzięki który
przewodnikPoPakiecieR8 b/iKocłne wprowadzenie do R >    U określamy funkcję i prz
przewodnikPoPakiecieR5 142 Wybrane procedury statystyczne Funkcje do generowania liczb i wyznaczani
przewodnikPoPakiecieR8 288 SKOROWIDZ 288 SKOROWIDZ funkcja format(base), 40 formatFix(ewhstring), 4
przewodnikPoPakiecieR9 2.90 SKOROWIDZ 2.90 SKOROWIDZ funkcja read.ssd(foreign), 97, 98 read.sy8tat(
17 Tablica 5. Podział przewodów ochronnych Nazwa Oznaczenie Przeznaczenie-Funkcja Przewód
Ebook6 82 Rozdział 3. Granica i ciągłość funkcji 82 Rozdział 3. Granica i ciągłość funkcji f(x) x —
82 [1600x1200] □ Struktura i funkcjonowanie ekosystem* 0 Zależności pokarmowe Q Krążenie materi
Skrypt! III.Granica i ciągłość funkcji Przedział (to—r, ®o+r) nazywamy otoczeniem punktu x* o promie

więcej podobnych podstron