przewodnikPoPakiecieR6

przewodnikPoPakiecieR6



84 pazuRrry

'P


Klasa może zawierać również funkcje. Szczególnie przydatne jest określenie funkr 'V cji initializeO, która wywoływana jest przy inicjacji nowego obiektu klasy. Pó niżej przykład definicji funkcji, pilnującej by wiek przyjmował rozsądne wartości.

setMethodCinitialize", "osoba”,

functionC.Object, imię « characterCNieznane") , wiek = numeric(O)) if (nargs() > 1) {

if(wiek > 120 II wiek < 0)

stop("Niedopuszczalna wartość dla slotu wiek") .Objectaimie <- imię .Objectawiek <- wiek

>

.Object

»

Sprawdźmy teraz, czy to zadziała.

> obiektOsoba <- newCosoba", imię3-"Przemek", wiek=2700)

Error in .lęcal(.Object, ...) : Niedopuszczalna wartość dla slotu wiek

m

Klasy można łączyć w zbiory klas. Obiektem takiego zbioru może być obiekt ,4-dowolnej z klas składowych. Jest to wygodny mechanizm, gdy chcemy, aby np. slot. mógł przyjmować wartości różnych typów. Zbiory klas można tworzyć funk

cją setClassUnion(methods). Zdefiniujmy taki przykładowy zbiór przechowujący

t ■ y s®


liczby lub łańcuchy znaków.

> setClassUnion("liczbaNapis", cCnumeric", "character"))

Możemy teraz zmodyfikować deklaracje klasy osoba, tak by dopuścić podawanie wieku nie tylko liczbowo, ale też opisowo.

>    setClass("08oba2", representation(imie”"character”, wiek“"liczbaNapis“>)

>    tt nie będzie sygnalizowany błąd, Wiek może być liczbą lab napisem

>    obiektdsoba2 <- new(”osoba2", imie”"Przemek“, wiek="dorosły“)

Wybrane funkcje do operowania na klasach S4 przedstawione są w tabeli 2.6,

Tabela 2.6: Funkcje z pakietu methods do operacji na klasach lub obiektach klas

••V

slotNames(x)

Argumentem może być nazwa kasy lub jej obiekt. Wy-uikicra tej fuukcji są informacje o nazwach slotów w tej klasie.

isClassUnion(class)

Test czy klasa class jest zbiorem klas.

is(object, class2)

Test czy obiekt object jest obiektem klasy class2 lub jej podklasy.

as(object, class2)

Konwersja obiektu object na obiekt klasy class2.

extends(class 1, class2) Czy klasa classl jest rozszerzeniem class2?


‘-Ct Wm

1.1.8 Formuły

formula to symboliczny opis zależności pomiędzy zmiennymi. Formuły są najczęściej wykorzystywane do opisu postaci modelu liniowego, logistycznego lub innego (patrz rozdział poświęcony statystyce). Formuły mogą być też wykorzystywane do wskaza-V nia zbioru zmiennych, które mają być graficznie przedstawione lub które mają być poddane jakiejś operacji. Obiekty zawierające formuły mogą być argumentami wielu funkcji statystycznych i statystyk opisowych. Wiele funkcji (patrz np. wykres rozrzu-Ąf.7' tu, wykres pudełkowy itp.) umożliwia podanie argumentów wejściowych w postaci zbioru wektorów lub w postaci formuły. Składnia formuły jest następująca:

Lewa.strona " Prawa, strona

Lewa. strona to najczęściej jedna zmienna (zmienna objaśniana), Prawa. strona to zbiór termów rozdzielanych znakiem + (zmienne objaśniające). Termem mogą być nazwy zmiennych lub nazwy zmiennych separowane znakiem : (tym znakiem oznacza się interakcje pomiędzy zmiennymi). Poniżej kilka przykładowych formuł.

8 formula opisująca zależność pomiędzy dwoma zmiennymi

'.....,.. .7-........

8 formula opisująca addytyumą zależność y od dwóch zmiennych y‘ " a + b

# formula opisująca addytyumą zależność od dwóch zmiennych i ich interakcji

W formułach można stosować też inne symbole:

• Znak * oznacza wszystkie zmienne i interakcje pomiędzy zmiennymi, czyli np. a*b = a+b+a:b.


wm


•    Znak ‘/.in*/. oznacza termy po lewej zagnieżdżone w termach po prawej, przykładowo: (a+b) ‘/.in’/, c = a:c + b:c.

V-

81 ii'


•    Znak / oznacza termy po lewej występujące samodzielnie i w interakcji z prawą stroną, przykładowo: a/b = a + a:b.

•    Znak ~n oznacza wszystkie zmienne i interakcje n-tego rzędu pomiędzy danymi zmiennymi, przykładowo:

(a+b+c)~2 = (a+b+c)*(a+b+c) = a + b + c + a:b + a:c + b:c.

•    Znak - powoduje usunięcie wskazanego termu z formuły, przykładowo: a*b - a = b + a:b.

•y.?;


Mi


1'ypy zmiennych i operacje na nich


85


Specjalne znaczenie ma term -1, który powoduje usunięcie z modelu wyrazu wolnego. Identyczny efekt można otrzymać dodając term +0. W formule można wykorzystywać funkcje arytmetyczne i inne funkcje R. Poprawnymi formułami są:

log(y) ‘ a + log(b) y ezp(a + b) y. r sqrt(b) + a y * ifelse(a>0, b, c)


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR6 84 pazuRrry Klasa może zawierać również funkcje. Szczególnie przydatne jest
Poprawny topologicznie rysunek mapy me może zawierać również powtarzających się elementów. Wszystkie
3. Inne źródła Spis tabel Spis wykresów Aneks Praca dyplomowa może zawierać również np.
Każdy z plików konwersji zawiera również funkcje napisane w języku VBA, które zasadniczo nie są wido
P6010227 MATLAB Podfunkcje Funkcja opisana w M-pliku może zawierać inne funkcje, które nazywamy podf
przewodnikPoPakiecieR5 122 pazuRrry2.6.5 Szukanie maksimum/minimum/zer funkcji Popularnym zagadnien
g. 2/2 ^Kancelaria Scimu_ może zawierać również inne postanowienia, w szczególności dotyczące
skanuj0038 że zawierają RNA. Funkcja ich me jest znana. Przypuszcza się, że mogą być one podjednostk
socjologia (12) głową może odgrywać dwie funkcje z jednej strony jest swego rodzaju wzmocnieniem i s
skanuj0118 (Kopiowanie) Łożysko hydrofobowe może być również nierozpuszczalne w woda gdyż jest wytwa
P1050994 Reklama nie może l zawierać treści dyskryminujących, w szczególności ze względu na rasę, pr

więcej podobnych podstron