R Language
matrices
Zoeken…
Invoering
Matrices slaan gegevens op
Matrices maken
Onder de motorkap is een matrix een speciaal soort vector met twee dimensies. Net als een vector kan een matrix slechts één gegevensklasse hebben. U kunt matrices maken met behulp van de matrix
zoals hieronder weergegeven.
matrix(data = 1:6, nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Zoals je kunt zien, geeft dit ons een matrix van alle getallen van 1 tot 6 met twee rijen en drie kolommen. De parameter data
neemt een vector van waarden, nrow
geeft het aantal rijen in de matrix aan en ncol
geeft het aantal kolommen aan. Volgens afspraak wordt de matrix per kolom gevuld. Het standaardgedrag kan worden gewijzigd met de parameter byrow
, zoals hieronder wordt weergegeven:
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
Matrices hoeven niet numeriek te zijn - elke vector kan worden omgezet in een matrix. Bijvoorbeeld:
matrix(data = c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] TRUE FALSE
## [2,] TRUE FALSE
## [3,] TRUE FALSE
matrix(data = c("a", "b", "c", "d", "e", "f"), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] "a" "d"
## [2,] "b" "e"
## [3,] "c" "f"
Net als vectoren kunnen matrices worden opgeslagen als variabelen en later worden opgeroepen. De rijen en kolommen van een matrix kunnen namen hebben. U kunt deze bekijken met de functies rownames
en colnames
. Zoals hieronder wordt getoond, hebben de rijen en kolommen aanvankelijk geen namen, die worden aangeduid met NULL
. U kunt er echter waarden aan toewijzen.
mat1 <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
rownames(mat1)
## NULL
colnames(mat1)
## NULL
rownames(mat1) <- c("Row 1", "Row 2")
colnames(mat1) <- c("Col 1", "Col 2", "Col 3")
mat1
## Col 1 Col 2 Col 3
## Row 1 1 2 3
## Row 2 4 5 6
Het is belangrijk op te merken dat matrices, net als vectoren, maar één gegevenstype kunnen hebben. Als u een matrix met meerdere gegevenstypen probeert op te geven, worden de gegevens naar de hogere dataklasse verplaatst.
De class
, is
, en as
functies kunnen worden gebruikt om gegevensstructuren te controleren en op te slaan op dezelfde manier als ze werden gebruikt op de vectoren in klasse 1.
class(mat1)
## [1] "matrix"
is.matrix(mat1)
## [1] TRUE
as.vector(mat1)
## [1] 1 4 2 5 3 6