77365 przewodnikPoPakiecieR0

77365 przewodnikPoPakiecieR0




litu i iifiui wprowadzenie do R

vjy

9


Konwertując obiekty typu wyliczeniowego na typ liczbowy należy być ostrożnym, aby nie być zaskoczonym wynikiem takiej konwersji.

W przykładzie poniżej widzimy, co złego może się stać przy nieostrożnym konwertowaniu liczb.

■ (wciktor * faetor(c(-2,2)))

(U -2 2

I.nvola: -2 2    :;J'.

>    0 nie takiego wynika się spodziewaliśmy

>    as.numorlc (wektor)

[1]    1 2    v

Konwersja typu f actor na numeric polega na tym, że kolejnym poziomom przypisywano są kolejne liczby naturalne. Stąd w powyższym przykładzie wynik 1 2. Bardziej oczekiwany wynik uzyskamy konwertując „po drodze" wektor na typ znakowy.

>    as. character(wektor)

[1] "-2“ ,,2" "

>    0 tak miato. byt

>    as.numeric(as.character(wektor))

[1] -2 2

Jeżeli nie jesteśmy pewni jakiego typu jest zmieima, to możemy jej typ sprawdzić funkcją classO lub modeO. Możemy też wykorzystać funkcje z tabeli 1.5.

Proszę zwrócić uwagę, że dwie przedstawione w tej tabeli funkcje: is.naO i is. nem O testują wartości, a nie typ, tak jak pozostałe funkcje z tej tabeli.

>    wektor » 1:6

>    0 klasa zmiennej wektor zwraca klasę elementów tego wektora

>    class(wektor)

(1) "integer"

>    0 tryb przechowywania elementów wektora to tryb liczbowy

>    modę(wektor)

[1] "numeric"

>    is.numeric(wektor)

[1] TRUE

>    0 ten wektor nie jest wektorem znaków

>    is.character(wektor)

[1] FALSE

>    0 i żadna z jego wartości nie jest NA

>    is.na(wektor)

[1] FALSE FALSE FALSE FALSE FALSE FALSE

y j y Klasę obiektu „widzianą” przez funkcję class() można dowolnie zmie-—    niać, o czym jeszcze powiemy więcej w kolejnych rozdziałach. Funkcja

•"A /’> mode() informuje o wewnętrznej reprezentacji danej zmiennej i nie może-# my na wynik tej funkcji bezpośrednio wpływać. Więcej o tych funkcjach przeczytać można w podrozdziale 2.1.6.

Zmienne służą do przechowywaniu wprowadzimy li dany li luli wyników wyki manycli poleceń. Najczęściej te wartości chcemy pr/.ciImwni , aliy mru Je później ponownie wykorzystać. Do wartości zmiennych odwołujemy my pniliijąr nazwę zmiennej. Nazwa zmiennej powinna rozpoczynać się literą, może układać me z lllei, cyfr i kropek. Istotna jest wielkość liter, więc zmienne x 1 X to dwie różne zmienne.

Do zmiennej można przypisać wartość jednym z trzech operatorów przypisania (można też inaczej, ale o tym w uwadze na koniec tego podrozdziału):

•    operator = przypisuje wartość znajdującą się z prawej strony do zmiennej znajdującej się po lewej stronie,

•    operator <- jak wyżej,

•    operator -> przypisuje wartość znajdującą się z lewej strony do zmiennej znajdującej się po prawej stronie.

Do zmiennej wartość można również przypisać korzystając z funkcji assign(base), ale korzystanie z powyższych operatorów jest wygodniejsze. Poniżej różne przykłady przypisania wartości.

c(13, 13) -> zmienna.z.kropka imiełt <- "Ola"

12 - 4

assignC"zmienna",14)

Jeżeli chcemy, by po przypisaniu wartość tego przypisania została wyświetlona na ekranie, to operacje przypisania należy zamknąć w okrągłych nawiasach.

> (zmienna <- 2"10)

Cl] 1024

Warto wspomnieć w tym miejscu o zmiennej .Last.value. Przechowuje ona wynik ostatnio wykonanego polecenia. Ta zmienna może być bardzo przydatna, jeżeli wykonaliśmy jakieś długo liczące się polecenie, a nie zapisaliśmy jego wyniku.

y j y W większości zastosowań operatoiy = i <- można stosować zamiennie.

___ Jednak nie zawsze mają one to samo działanie. Różnica pojawia się np.

A'- gdy operatory te użyte są przy określaniu argumentu funkcji. Operator w = służy do wskazania, który argument funkcji określamy, operator <-zachowuje się jak zwykły operator przypisania (jeszcze do tego wrócimy).

Kolejna różnica polega na tym, że operator <- ma wyższy priorytet. Prześledźmy poniższy kod.

>    a = b = 5

>    a <- b <- 5

>    a = b <- 5

>    a <- b = 5 Efror in (a <- b)


tt wszystko    ok,    obie    zmienne    mają    wartość    5

<t wszystko    ok,    obie    zmienne    mają    wartość    5

tt wszystko    ok,    obie    zmienne    mają    wartość    5

tt mamy problem, lewa strona    operatora = nie jest zmienną

: could not find tunction


Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR0 ” litu i iifiui wprowadzenie do R vjy 9 Konwertując obiekty typu wyliczeniow
przewodnikPoPakiecieR6 ■II l.iiHodne wprowadzenie do R 1.(1.1.3 Funkcja switch(base) m W przypadku
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
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
przewodnikPoPakiecieR3 18 Łagodne wprowadzenie do R 18 Łagodne wprowadzenie do R R will always be a
przewodnikPoPakiecieR5 22 Łagodne wprowadzenie do R Thbela 1.3: Lista funkcji arytmetycznych z paki
przewodnikPoPakiecieR7 26 Łagodne wprowadzenie do R >    # d teraz tworzymy inną,
przewodnikPoPakiecieR8 •M f<«g«nln» wprowadzenie do R • Typ znakowy. Wartościami obiektów tego t
przewodnikPoPakiecieR1 34 Łagodne wprowadzenie do R 1.5.6.4 Indeksy Do elementów wektorów, list, ma
przewodnikPoPakiecieR4 I.iiimim’ wprowadzenie do R korzystając z funkcji invisible(base). Działanie

więcej podobnych podstron