R Language
matriser
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