przewodnikPoPakiecieR0

przewodnikPoPakiecieR0



Łagodne wprowadzenie do II to uruchamiana Jest funkcja summary.lm(), która prezentuje w tekstowej postaci;'* poszczególni- elementy modelu liniowego (do tego tematu wrócimy w części poświę-| conej statystyce). Innymi, często przeciążanymi funkcjami są predictO, anova(], print O oraz operatory,

Korzystając z funkcji methodsO możemy sprawdzić, czy zadeklarowane są ja-, kies przeciążone wersje interesującej nas funkcji lub też, czy są przeciążone funkia cje dla jakiejś interesującej nas klasy. Warto zobaczyć jaki jest wynik polecenjąl methods(plot), aby przekonać się jak wiele jest przeciążeń funkcji plot O.

>    # lista przeciążeń

>    mfsthods(plot)

[i] plot.acf*

[4] plot. data. frami 17] plot.default [10] plot.diana*

[13] plot.formula* [16] plot.Im [19] plot.mim [22] plot.P0SIXct* [25] plot.p-fineorap*


plot.agnes* plot.Datę* plot.dendrogram* plot.ecdf plot.hclust* plot.mca* plot.mona* plot.ppr* plot.profile*


przeciążeń funkcji plot (plot)

. acf *

.data.tramo*

■default .diana*

■formula*

. Im .mim


plot.correspondence*

plot.decomposed.ts*

plot.density

plot.factor*

plot.histogram*

plot.medpolish*

plót.partition*

plot.prcomp*

plot.table*


Non-visible functlons ara asterisked

Nie każda funkcja może być przeciążona. Aby R wiedział, że jakaś funkcja jest : generyczna (czyli może być przeciążana) należy zamarkować ją używając funkcji UseMethodO. Kompletny opis działania tej funkcji (a zarazem technicznych aspektów działania funkcji przeciążanych) wykracza poza zakres tej książki, ograniczmy yiS się więc jedynie do przykładu. W poniższym przykładzie funkcja rozmiar () wyzna-'cza i przekazuje liczbę elementów w danym obiekcie, bez względu czy jest to wektor, macierz czy ramka danych.

>    # wskazujemy, żejunkcja rozmiar będzie przeciążana

>    rozmiar = fiinction(x) UseMethodCrozmiar”)

>    * opisujemy jej domyślne zachowanie

> rozmiar.dafault    « function(x) length(x)

>    » specyfikujemy jej zachowanie dla konkretnych typów argumentów rozmiar.character - function(x) length(x)

rozmiar.matrlx - function(x) dim(x)[1] * dim(x)[2] rozmiar.array    = function(x) prod(dim(x))

# krótki test, wywołujemy tę funkcję dla wektora rozmiar(10:1)

[13 10

>    # wywołujemy funkcję 'rozmiar' dla macierzy

>    rozmiar(matrix(0,10,10))

[1] 100

Przyśpieszamy

53


1.6.2-4 Funkcje a zasięg

Każdy z trzech operatorów ->, <- i - przypisuje wartości do zmiennej o lokalnym Zasięgu (w aktualnym środowisku używając terminologii R). A więc taki operator użyty w funkcji zmienia wartość zmiennej lokalnie w funkcji. W języku R są dostępne również dwa inne operatory przypisania, mianowicie -» i «-. Ich działanie różni się tym, że przypisują wartość do zmiennej o zasięgu globalnym, a więc zmiany widoczne są poza zakresem funkcji. Warto przeanalizować poniższy przykład.

>    f definiujemy nową funkcją, w której będziemy przypisywać wartości ' > przykład 1 <- functionO {

" tt pierwsze przypisanie to normalne, lokalne przypisanie +    zmiennal <- 2

+ tt drugie przypisanie to globalne przypisanie, modyfikowana jest '('V zmienna w zewnętrznej przestrzeni nazw . +    zmienna2 «~ 2

+    cat(pastę("zmiennal:”.zmiennal,“zmienna2:",zmienna2,“\n"))

+ )■

>    # zainicjujmy wartość dwóch zmiennych

>    zmiennal * 1

>    zmienna2 * 1

>    tt stan zmiennych globalnych przed uruchomieniem funkcji

>    cat(paste("zmiennal: " .zmiennal, "zmienna2:11 ,zmienna2, “\n")) zmiennal: 1 zmienna2: 1

>    tt stan zmiennych lokalnych wewnątrz funkcji

>    przykład!O zmiennal: 2 zmienna2: 2

>    # stan zmiennych globalnych po uruchomieniu funkcji

>    cat (pastę (''zmiennal:" .zmiennal, "zmienna2: " ,zmienna2, "\n")) zmiennal: 1 zmienna2: 2

^ | y Operator * powinien być stosowany tylko w „najbardziej zewnętrznym” —    poziomie zagnieżdżenia (tam jest. równoważny operatorom <- i ->). Jeże-

/''■ li wywołujemy funkcję, to w specyfikacji jej argumentów operatory - i <-if mają odmienne znaczenia!!! Operator „strzałkowy” oznacza przypisanie wartości, podczas gdy operator = wskazuje, który argument funkcji jest określany. Różnice te demonstruje poniższy przykład.

>    * ta instrukcja się nie wykona,

>    tt zostanie zinterpretowana jako próba wskazania wartości argumentu o

nazwie ’liczbyJ, który nie jest argumentem funkcji plot O

>    plot(liczby - 1:100)

Error in plot(liczby « 1:100) : argument “x" is missing, with no default

>    tt ta instrukcja wykona się poprawnie, operacja podstawienia przekazuje

wynik i to on będzie narysowany na ekranie

>    plot(liczby <- 1:100)


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR6 4 Lagodne wprowadzenie do R1.3 Instalacja Instalacja pakietu R składa się z
przewodnikPoPakiecieR7 6 Łagodne wprowadzenie do i? dowiedzieć się w jakim pakiecie ta funkcja się
przewodnikPoPakiecieR9 m Łagodne wprowadzenie do R • Lista. Podobnie jak wektor, lista to również u
przewodnikPoPakiecieR5 2 Łagodne wprowadzenie do R1.2 Słów kilka o projekcie R R is tho lingua fran
przewodnikPoPakiecieR2 Łagodne wprowadzenie do li użyć funkcji match(base). Działu mm zim< /ule
przewodnikPoPakiecieR3 38 Łagodne wprowadzenie do R 38 Łagodne wprowadzenie do R generowana jest se
przewodnikPoPakiecieR3 58 Łagodne wprowadzenie do R Wariacje z funkcją ablinef) •tó Rysunek 1.6: Pr
przewodnikPoPakiecieR3 18 Łagodne wprowadzenie do R 18 Łagodne wprowadzenie do R R will always be a
przewodnikPoPakiecieR7 46 Łagodne wprowadzenie do R >    # to pętla wykona się dl
przewodnikPoPakiecieR1 54 Łagodne wprowadzenie do R 1.6.2.5 Własno operatory Kolejnym rozszerzeniem
przewodnikPoPakiecieR9 PT 10 Łagodne wprowadzenie do R JMWIM liii llln •nililIMniy, wlv« inoAim
przewodnikPoPakiecieR0 12 Łagodne wprowadzenie do R • File Source R codę... Tym poleceniem możemy w
przewodnikPoPakiecieR1 14 Łagodne wprowadzenie do R —    BufFered output Ta opcja ok
przewodnikPoPakiecieR2 16 Łagodne wprowadzenie do R -    R functions (text) Pomoc do
przewodnikPoPakiecieR5 22 Łagodne wprowadzenie do R Thbela 1.3: Lista funkcji arytmetycznych z paki

więcej podobnych podstron