H |
f.»mo(/mi uprowadzenie do R |
J«4*ll nl« winny, co to llciby Mipolono, to pomijamy ton prtykład. 1 |
• 0 jtttli nie podamy wszystkich wymaganych argumentów funkcji, to też motamy mg spodziewać błędu ■ 6V(1) ' •- y , Klim In cnv(l) : Bupply both ’x’ and ’y‘ ot a matrix-like 'x’ > 0 cięztym błędem jest nie dokończenie polecenia, nie zamknięcie nawiasu lub ii i e zamknięcie łańcucha znaków, w tej sytuacji R sygnalizuje, że czeka na resztę polecenia * łańcuch « " t; •' '"’Ć.. ', ♦ « » J;:+ . ♦ s y tl] 4 Możemy też operować na liczbac;h zespolonych (trzeba to robić z uwagą, patrz poniższy przykład). Lista funkcji do operowania na liczbach zespolonych umieszczona jest w tabeli 1.4. > 0 pierwsza próba, niestety bez powodzenia > sqrt(-17) [1] NaN Warning message: In sqrt(-17) : NaNs produced > 0 nie tofc miało być, jeżeli chcemy korzystać z arytmetyki na liczbach zespolonych, trzeba to wyraźnie dać do zrozumienia platformie R > aqrt(-17+0i) [1] 0+4.1231061 > (2+41)*(3-21) 5 Cl] 14+81 A teraz skonstruujemy wektor liczb i wykonamy na nim kilka operacji. Prześledźmy uważnie wyniki poniższych instrukcji. > 0 wektor tworzy się korzystając z funkcji cO > (wektor - c(ll, 13,.10.5, -3, 11)) [1] 11.0 13.0 10.6 -3.0 11.0 > 0 na takim wektorze możemy wykonywać operacje arytmetyczne > wektor‘2 [1] 121.00 169.00 110.25 9.00 121.00 > 1/wektor [1] 0.09090909 0.07692308 0.09523810 -0.33333333 0.09090909 > wektor -2 - - “.'i ' [1] 9.0 11.0 8.5 -5.0 9.0 > 0 wektory można łączyć w jeszcze większe wektory * c(wektor, 0, 3:5, wektor) [1] 11.0 13.0 10.5 -3.0 11.0 0.0 3.0 4.0 5.0 11.013.010.5-3.0 11.0 . > 0 zamiast wpisywać długie sekwencje liczb ręcznie możemy je generować automatycznie >1:10 [1] 1 2 3 4 5 6 7 8 9 10 |
> # funkcja repO replikują wektor określony liczbą raty ■ > rep(l:2, times»5)
[1] 12 12 12 12 12
> rep(l:2, each»5)
fi] 1 1 1 1 1 2 2 2 2 2
> tt możemy operować na wektorze wartości logicznych (o tym jeszcze będzie)
> wektor * c(ll, 13, 10.5, -3, 11)
> wektor > O
[1] TRUE TRUE TRUE FALSE TRUE
W powyższych przykładach wykonywaliśmy operacje na całym wektorze. Możemy również manipulować fragmentami lub poszczególnymi elementami wektora. Poniżej kilka przykładów jak to zrobić. Więcej o tym jak korzystać z elementów wektora będzie w następnym podrozdziale.
> z co jest w pierwszym elemencie wektora
> wektorCl]
[1] U
> * co jest w elemencie 2 i 3 wektora
> wektor[2:3] fl] 13.0 10.5
> $ fragment wektora też jest wektorem możemy więc no nim swobodnie
wykonywać dowolne operacje
> wektor[2:3] + 4 [1] 17-0 14.5
> # co jest w elemencie 1. 3 i 5
> wektor[c(l,3,5)]
Cl] 11.0 10.5 11.0
> .tt wypiszmy wartości dodatnie z wektora (wartości o indeksach
odpowiadającym wartościom dodatnim)
> wektor[wektor>0]
Cl] 11.0 13.0 10.5 11.0
Strukturą bardziej złożoną od wektora jest macierz. W poniższym przykładzie zadeklarujemy macierz o wymiarach 2 X 3 i wykonamy na niej kilka operacji arytmetycznych.
> tt tworzymy nową macierz złożoną z samych zer
> macierz = matrix(0,2,3)
> tt wyświetlmy ją
> macierz
[,1] C,2] [,3]
[i,] ooo C2,] 0 0 0
. > tt tak jak w przypadku wektora na macierzy możemy wykonywać operacja arytmetyczne
> macierz+1
[,1] t,2] [,3]
CU l l i
[2,] 1 1 1
25