Matriisit

R tuntee myös matriisit, jotka ovat kaksi- tai useampiulotteisia taulukoita. Matriisi voidaan muodostaa keskenään samanmittaisista vektoreista. Komento cbind yhdistää vektorit siten, että kukin tulee matriisin sarakkeeksi (``column''). Komento rbind taas tekee yhdistämisen toisin päin, eli kukin vektori tulee omaksi rivikseen (``row'').

> luvut <- 2:5
> neliot <- luvut^2
> cbind(luvut,neliot)
     luvut neliot
[1,]     2      4
[2,]     3      9
[3,]     4     16
[4,]     5     25
> rbind(luvut,neliot)
       [,1] [,2] [,3] [,4]
luvut     2    3    4    5
neliot    4    9   16   25

Matriisilla on ainakin kaksi dimensiota ja vastaavasti useampi indeksi. Matemaattisesti merkitsemme xij ja R:ssä x[i,j]. Kuten näkyy, dimensiolla voi olla myös nimi, jota voi käyttää indeksinä. Niinpä seuraavat tavat ovat vaihtoehtoisia:

> taulu <- cbind(luvut,neliot)
> taulu[,"neliot"]
[1]  4  9 16 25
> taulu[,2]
[1]  4  9 16 25

Yllä olevissa esimerkeissä ensimmäinen indeksi jätettiin pois (pilkkua ennen ei mitään), joten kaikki sen arvot tulostettiin. Aivan samoin kuin vektoreissa, indeksi voi olla vektori. Esimerkiksi taulu[1:3,1] tulostaisi ensimmäisen sarakkeen kolme ensimmäistä riviä. Matriisissa voi olla myös useampi kuin kaksi dimensiota. Tällöin indeksejä on tietysti useampi. Matriisin dimensiot näkee komennolla dim:

> dim(taulu)
[1] 4 2

Matriiseja käsitellään laskutoimituksissa yleensä kuten vektoreita eli kaikki operaatiot tehdään alkioittain. Halullisille on toki jälleen tarjolla varsinaisia matriisioperaatioita, mutta niistä enemmän pitemmälle menevissä oppaissa.


Jari Oksanen 2003-01-21