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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow