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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow