R Language
Matryce
Szukaj…
Wprowadzenie
Matryce przechowują dane
Tworzenie macierzy
Pod maską macierz jest specjalnym rodzajem wektora o dwóch wymiarach. Podobnie jak wektor, macierz może mieć tylko jedną klasę danych. Możesz tworzyć macierze za pomocą funkcji matrix
jak pokazano poniżej.
matrix(data = 1:6, nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Jak widać daje to nam macierz wszystkich liczb od 1 do 6 z dwoma rzędami i trzema kolumnami. Parametr data
przyjmuje wektor wartości, nrow
określa liczbę wierszy w macierzy, a ncol
określa liczbę kolumn. Zgodnie z konwencją macierz jest wypełniana według kolumn. Domyślne zachowanie można zmienić za pomocą parametru byrow
, jak pokazano poniżej:
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
Macierze nie muszą być numeryczne - dowolny wektor można przekształcić w macierz. Na przykład:
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"
Podobnie jak wektory, macierze mogą być przechowywane jako zmienne, a następnie wywoływane później. Wiersze i kolumny macierzy mogą mieć nazwy. Możesz na nie spojrzeć przy użyciu funkcji rownames
i colnames
. Jak pokazano poniżej, wiersze i kolumny początkowo nie mają nazw, które są oznaczone przez NULL
. Możesz jednak przypisać im wartości.
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
Należy zauważyć, że podobnie jak wektory, macierze mogą mieć tylko jeden typ danych. Jeśli spróbujesz określić macierz z wieloma typami danych, dane zostaną wymuszone do klasy danych wyższego rzędu.
class
is
, a as
funkcje mogą być używane do sprawdzania i wymuszania struktur danych w taki sam sposób, jak były one stosowane w wektorach w klasie 1.
class(mat1)
## [1] "matrix"
is.matrix(mat1)
## [1] TRUE
as.vector(mat1)
## [1] 1 4 2 5 3 6