Basisvaardigheden in R: Werken met datastructuren
Matrix
Uitleg
Een matrix (meervoud matrices ) is een rechthoekig schema met rijen en kolommen die zijn gevuld met waarden van hetzelfde datatype. Het is per definitie een tweedimensionaal object en de kleinste componenten van een matrix worden gewoonlijk matrixelementen of kortweg elementen genoemd. De meeste matrices zijn numeriek, d.w.z. ze zijn gevuld met getallen, maar het is ook mogelijk matrices van andere datatypen te maken, zoals karakter getypeerde matrices. Aan de rechterkant ziet u voorbeelden van numerieke en letter getypeerde matrices. De numerieke matrix is geschreven in de gebruikelijke notatie, waarbij het rechthoekige schema tussen haakjes staat.
Voorbeelden
Een numerieke matrix: \[\matrix{7 & 5 & 2\\ 4 & 1 & 4\\ 8 & 0 & 5}\] Een letter getypeerde matrix met boekgenres:
Thriller | Fantasy | Fantasy |
Thriller | Detective | Thriller |
Science fiction | Fantasy | Science fiction |
Uitleg
Je kunt een matrix maken met de functie matrix()
. Het eerste argument van deze functie is een vector van waarden, het tweede argument is het aantal rijen en het derde is het aantal kolommen. Het vierde argument is logisch en specificeert of de matrix moet worden gevuld per rij (byrow = TRUE
) of per kolom (byrow = FALSE
, de standaardkeuze). Je kunt ook benoemde argumenten gebruiken en dan doet de volgorde van de benoemde argumenten er niet toe.
Via de functie dim()
kun je de dimensie van een matrix weergeven en specificeren.
Net als vectoren zijn matrices indexeerbare en veranderlijke objecten.
Bij simulaties wordt uitgebreid gebruik gemaakt van matrices met willekeurige getallen, d.w.z. met willekeurig gegenereerde getallen. Ze maken gebruik van de volgende functies voor het genereren van willekeurige vectoren:
runif() |
willekeurige getallen via een uniforme verdeling |
sample() |
willekeurige objecten uit een vector |
rnorm() |
willekeurige getallen via een normale verdeling |
Bekijk de voorbeeldsessie hiernaast en oefen met het maken van matrices.
Voorbeeldsessie
Rekenen met matrices
Uitleg
Een matrix kan worden vermenigvuldigd met een getal of er kan een getal bij worden opgeteld: dit gebeurt elementswijs. Matrices kunnen met elkaar of met vectoren worden opgeteld en vermenigvuldigd wanneer de afmetingen van de betrokken objecten dit toelaten. De voorbeeldsessie over de rechterkant illustreert dit.
De voorbeelden laten ook zien dat matrixvermenigvuldiging in de zin van lineaire algebra wordt gedaan via de operator %*%
.
R biedt talrijke functies voor matrixmanipulatie, zoals het berekenen van determinanten, inversen, eigenwaarden en eigenvectorem, SVD, enzovoort. Voor verdere matrixalgebra verwijzen we naar de lineaire algebra in het R hoofdstuk van de SMASH-cursus Doing Mathematics with R.
Voorbeeldsessie
Elementen van matrices selecteren en waarden toewijzen
Uitleg
Net als vectoren zijn matrices indexeerbare en veranderlijke objecten. Dit betekent dat elementen van een matrix toegankelijk zijn via een positionele index en dat je een matrix ook kunt wijzigen door een waarde aan een enkel element toe te wijzen. De positionale index bestaat uit de rij- en kolomindex.
Indexering maakt selectie van deelmatrices mogelijk. Selectie van rijen of kolommen op basis van een voorwaarde is ook mogelijk.
Bekijk de voorbeelden in de voorbeeldsessie aan de rechterkant eens goed en experimenteer er een beetje mee om ervaring op te doen met het selecteren van deelmatrices.
Voorbeeldsessie
We bekijken de volgende matrices \[A=\left(\begin{array}{rrr} -3 & -1 & 0 \\ 4 & 7 & -10 \\ 4 & 3 & -3 \end{array}\right), \quad B=\left(\begin{array}{rrr} -2 & 2 & -5 \\ 12 & -7 & 20 \\ 6 & -4 & 11 \end{array}\right), \quad C=\left(\begin{array}{rrr} -2 & 14 & 8 \\ -1 & 10 & 6 \\ 1 & -13 & -8 \end{array}\right)\] Deze matrices hebben de volgende eigenschappen: \[A^{4n+1}=A,\quad B^n=B,\quad C^{n+2}=0,\] voor \(n=1,2\ldots\). Verifieer deze eigenschappen in R.