Поиск…


Вступление

Матрицы хранят данные

Создание матриц

Под капотом матрица представляет собой особый вид вектора с двумя измерениями. Как вектор, матрица может иметь только один класс данных. Вы можете создавать матрицы, используя matrix функцию, как показано ниже.

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

Как вы можете видеть, это дает нам матрицу всех чисел от 1 до 6 с двумя строками и тремя столбцами. Параметр data принимает вектор значений, nrow указывает количество строк в матрице, а ncol указывает количество столбцов. По соглашению матрица заполняется столбцом. Поведение по умолчанию может быть изменено с byrow параметра byrow как показано ниже:

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

Матрицы не должны быть числовыми - любой вектор можно преобразовать в матрицу. Например:

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"

Подобно векторам матрицы могут храниться как переменные, а затем вызывать их позже. Строки и столбцы матрицы могут иметь имена. Вы можете посмотреть на них, используя функции rownames и colnames . Как показано ниже, строки и столбцы первоначально не имеют имен, которые обозначаются NULL . Однако вы можете присвоить им значения.

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

Важно отметить, что аналогично векторам матрицы могут иметь только один тип данных. Если вы попытаетесь указать матрицу с несколькими типами данных, данные будут принуждаться к классу данных более высокого порядка.

Функции class , is и as могут использоваться для проверки и принуждения структур данных таким же образом, как они использовались для векторов в классе 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow