Sök…


Introduktion

Matriser lagrar data

Skapa matriser

Under huven är en matris en speciell typ av vektor med två dimensioner. Som en vektor kan en matris endast ha en dataklass. Du kan skapa matriser med matrix som visas nedan.

matrix(data = 1:6, nrow = 2, ncol = 3)
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6

Som ni ser detta ger oss en matris med alla siffror från 1 till 6 med två rader och tre kolumner. Den data parameter tar en vektor av värden, nrow Anger antalet rader i matrisen, och ncol specificerar antalet kolumner. Enligt konvention fylls matrisen med kolumn. Standardbeteendet kan ändras med byrow som visas nedan:

matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6

Matriser behöver inte vara numeriska - någon vektor kan omvandlas till en matris. Till exempel:

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"

Liksom vektorer kan matriser lagras som variabler och sedan ringas senare. Raderna och kolumnerna i en matris kan ha namn. Du kan titta på dessa med hjälp av funktionerna rownames och colnames . Som visas nedan har raderna och kolumnerna inte ursprungligen namn, vilket betecknas av NULL . Du kan dock tilldela dem värden.

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

Det är viktigt att notera att matriser på liknande sätt som vektorer bara kan ha en datatyp. Om du försöker ange en matris med flera datatyper kommer data att tvingas till dataklassen med högre ordning.

class is , och as funktioner kan användas för att kontrollera och tvinga datastrukturer på samma sätt som de användes på vektorerna i klass 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow