Laskutoimitukset vektoreilla

Vektoreita voi käyttää matemaattisissa lausekkeissa melko samoin kuin yksittäisiä lukujakin. Mikäli jokin laskutoimituksen tekijä on vektori, kierrätetään lyhyempiä tekijöitä tarpeeksi monta kertaa ja tulos on pisimmän vektorin pituinen (mikäli tämä tehdään tarkoituksella eikä vahingossa, vaaditaan yleensä tarkkaa harkintaa eripituisia vektoreita yhdistettäessä). Tutulla vektorillamme vek ja muuttujallamme A saamme:

> A*vek
[1] 42.72566 25.13274 27.89734 11.30973 64.33982

Mikäli vektorit ovat samanmittaiset, kaikki matemaattiset operaatiot tehdään alkioittain:

> mult <- floor(vek)
> mult
[1] 3 2 2 0 5
> mult*vek
[1] 10.20  4.00  4.44  0.00 25.60

Useimmille käyttäjille on helpotus, että R ei tällaisessa tapauksessa suorita matriisialgebran vektorikertolaskua. Tosin sitä haluaville on toki tarjolla myös matriisikertolasku (R-intro, 2000).

Vektoreille on koko joukko erityisiä funktioita: min ja max palauttavat vektorin pienimmän ja suurimman arvon, sum vektorin arvojen summan, prod arvojen tulon, mean keskiarvon, var varianssin, sd hajonnan (length olikin jo mainittu). Funktio range(vektori) palauttaa kahden arvon mittaisen vektorin c(min(vektori), max(vektori)).

Joskus on tarve käyttää poikkeamia keskiarvosta ($ \bar{{x}}$) tai tehdä ns. z-muunnos

zi = $\displaystyle {\frac{{x_i - \bar{x}}}{{s}}}$ (1)

eli vähentää kustakin alkiosta keskiarvo ja jakaa keskihajonnalla, jonka jälkeen muunnettujen lukujen z keskiarvo on $ \bar{{z}}$ = 0 ja hajonta on s = 1. Tämän voi tehdä komennolla

> scale(x)          ## z-muunnos
> scale(x, scale=F) ## vain keskiarvon vähentäminen

Vektorin arvot voi lajitella komennolla sort. Komennot sort.list ja order palauttavat indeksit, jotka järjestäisivät vektorin. Näitä epäsuoria komentoja käytetään silloin, kun halutaan järjestää monta vektoria samaan järjestykseen yhden vektorin mukaan:

> sija <- c(1,2,3,4,5)  ## Oikotie §3.4
> sort(vek)
[1] 0.90 2.00 2.22 3.40 5.12
> i <- sort.list(vek)   ## tai order(vek)
> vek[i]
[1] 0.90 2.00 2.22 3.40 5.12
> sija[i]
[1] 4 2 3 1 5


Jari Oksanen 2003-01-21