przewodnikPoPakiecieR6

przewodnikPoPakiecieR6



84 pazuRrry

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

setMethodCinitialize", "osoba",

function(.Object, imię = character("Nieznane"), wiek = numeric(O)) if (nargsO > 1) {

if (wiek > 120 I I wiek < 0)    -

stopCNiedopuszczalna wartość dla slotu wiek")

.ObjectSimie <- imię •ObjectOwlek <- wiek

>

.Object

»

Sprawdźmy teraz, czy to zadziała.

> obiektOsoba <- newCosoba", i mie*"Przemek" , wiek=2700)

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

Klasy można łączyć w zbiory klas. Obiektem takiego zbioru może być obiekip dowolnej z klas składowych. Jest to wygodny mechanizm, gdy chcemy, aby np. k slot mógł przyjmować wartości różnych typów. Zbiory klas można tworzyć funkfj cją setClassUnion(methods). Zdefiniujmy taki przykładowy zbiór przechowują liczby lub łańcuchy znaków.

> setClassUnion("lięzbaNapis", cOnumeric", "character"))

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

>    setClass("osoba2", representation(imie«"character", wiek="liczbaNapisl!

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

>    obiekt0soba2 <- new("osoba2", imie-"Przemek", wiek="dorosly")

Wybrane funkcje do operowania na klasach S4 przedstawione są w tabeli 2.6. yM Tabela 2.6: Funkcje z pakietu methods do operacji na klasach lub obiektach klas

slotNames(x)

Argumentem może być nazwa kasy lub jej obiekt. Wynikiem tej funkcji są informacje o nazwach slotów w tej klasie.

■'źfi

isClassUnion(class)

Test czy klasa class jest zbiorem klas.

is(object, cla8s2)

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

as(object, class2)

Konwersja obiektu object na obiekt klasy claes2.

extends(classl, class2)

Czy klasa classl jest rozszerzeniem class2?

2.1-8 Formuły


Ipffinnula to symboliczny opis zależności pomiędzy zmiennymi. Formuły są najczęściej wykorzystywane do opisu postaci modelu liniowego, logistycznego lub innego (patrz sk^i^jział poświęcony statystyce). Formuły mogą być też wykorzystywane do wskaza-' • nm zbioru zmiennych, które mają być graficznie przedstawione lub które mają być i J poddane jakiejś operacji. Obiekty zawierające formuły mogą być argumentami wielu funkcji statystycznych i statystyk opisowych. Wiele funkcji (patrz np. wykres rozrzutu. 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 jplpplifcriacza się interakcje pomiędzy zmiennymi). Poniżej kilka przykładowych formuł.

■ ■ ?    S.:..    •    ■ :

• 'k/ formoi a opisująca zależność pomiędzy dwoma zmiennymi

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


df formula opisująca addytyumą zależność od dwóch zmiennych i ich interakcji f.y * a + b + a:b

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.

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

•    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.

i.. 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) e*p(a + b)

J ' 6qrt(b) + a

£? * ifelse(a>0, b, c)


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR6 84 pazuRrry P Klasa może zawierać również funkcje. Szczególnie przydatne je
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