[ Home | Vorige | Volgende ]

Als vectoren straten zijn, dan zijn matrices steden met een recht stratenplan (zoals New York met z’n avenues en streets), waarin de getallen op de kruispunten wonen. Een makkelijke manier om een matrix te bouwen is om twee of meer vectoren aan elkaar te koppelen. Het volgende maakt een matrix met twee rijen en drie kolommen (rbind betekent “row-bind”):

a = rbind (c(3, 4, 5), c(6, 8, 11))
a
##      [,1] [,2] [,3]
## [1,]    3    4    5
## [2,]    6    8   11

De elementen van de matrix kun je weer vinden met rechte haken. In kolom 3 van rij 2 woont het getal 11:

a [2, 3]
## [1] 11

Je kunt de waarden van de cellen ook veranderen:

a [1, 2] = 13
a
##      [,1] [,2] [,3]
## [1,]    3   13    5
## [2,]    6    8   11

Uit een matrix kun je een rij als vector terughalen:

a [2, ]
## [1]  6  8 11

Of een kolom als vector:

a [, 2]
## [1] 13  8

Een andere manier om een matrix te maken is deze:

a = matrix (c(3, 4, 5, 6, 8, 11), nrow = 2, ncol = 3)
a
##      [,1] [,2] [,3]
## [1,]    3    5    8
## [2,]    4    6   11

Zoals je ziet worden hier eerst de eerste kolom helemaal gevuld, voordat aan de tweede wordt begonnen!

Soms wil je een matrix spiegelen, ofwel “transponeren”, d.w.z. de rijen en kolommen verwisselen. Dat kan met het commando t:

t (a)
##      [,1] [,2]
## [1,]    3    4
## [2,]    5    6
## [3,]    8   11

Die had je ook kunnen maken met cbind (dat betekent “column-bind”):

cbind (c(3, 5, 8), c(4, 6, 11))
##      [,1] [,2]
## [1,]    3    4
## [2,]    5    6
## [3,]    8   11

Een handige truc is het geven van namen aan de kolommen:

klassen = c(3, 4, 5)
stand = c(6, 8, 11)
leeftijd = c(30, 40, 50)
cbind (klassen, stand, leeftijd)
##      klassen stand leeftijd
## [1,]       3     6       30
## [2,]       4     8       40
## [3,]       5    11       50

Je ziet dat de namen van de vectoren hergebruikt worden als de namen van de kolommen.

[ Home | Vorige | Volgende ]