Учебники

4) Учебное пособие по матрице R

Что такое матрица?

Матрица — это двумерный массив, который имеет m строк и n столбцов. Другими словами, матрица — это комбинация двух или более векторов с одинаковым типом данных.

Примечание. С помощью R. можно создать более двух массивов измерений.

R Matrix Tutorial

Как создать матрицу в R

Мы можем создать матрицу с помощью функции matrix (). Эта функция принимает три аргумента:

matrix(data, nrow, ncol, byrow = FALSE)

Аргументы: 

  • data : коллекция элементов, которые R будет размещать в строках и столбцах матрицы
  • nrow : количество строк 
  • ncol : количество столбцов 
  • Byrow : строки заполняются слева направо. Мы используем `byrow = FALSE` (значения по умолчанию), если мы хотим, чтобы матрица заполнялась столбцами, т.е. значения заполнялись сверху вниз.

Построим две матрицы 5×2 с последовательностью чисел от 1 до 10, одну с byrow = TRUE и одну с byrow = FALSE, чтобы увидеть разницу.

# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow =  TRUE 
matrix_a <-matrix(1:10, byrow = TRUE, nrow = 5)
matrix_a

Вывод:

R Matrix Tutorial

Распечатать размер матрицы с помощью dim ()

# Print dimension of the matrix with dim()
dim(matrix_a)

Вывод:

## [1] 5 2

Построить матрицу из 5 строк, которые содержат числа от 1 до 10 и byrow = FALSE

# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow =  FALSE
matrix_b <-matrix(1:10, byrow = FALSE, nrow = 5)
matrix_b

Вывод:

R Matrix Tutorial

Распечатать размер матрицы с помощью dim ()

# Print dimension of the matrix with dim()
dim(matrix_b)

Вывод:

## [1] 5 2

Примечание . Использование команды matrix_b <-matrix (1:10, byrow = FALSE, ncol = 2) будет иметь тот же эффект, что и выше.

Вы также можете создать матрицу 4×3, используя ncol. R создаст 3 столбца и заполнит строку сверху вниз. Проверьте пример

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)
matrix_c

Вывод:

##       [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
## [3,]    3    7   11
## [4,]    4    8   12

Пример:

dim(matrix_c)

Вывод:

## [1] 4 3

Добавить столбец в матрицу с помощью cbind ()

Вы можете добавить столбец в матрицу с помощью команды cbind (). cbind () означает привязку столбца. cbind () может объединять столько матриц или столбцов, сколько указано. Например, в нашем предыдущем примере была создана матрица 5×2. Мы объединяем третий столбец и проверяем размер 5×3

Пример:

# concatenate c(1:5) to the matrix_a
matrix_a1 <- cbind(matrix_a, c(1:5))
# Check the dimension
dim(matrix_a1)

Вывод:

## [1] 5 3

Пример:

matrix_a1

Вывод

##       [,1] [,2] [,3]
## [1,]    1    2    1
## [2,]    3    4    2
## [3,]    5    6    3
## [4,]    7    8    4
## [5,]    9   10    5

Пример:

Мы также можем добавить более одного столбца. Давайте посмотрим следующую последовательность чисел в матрице matrix_a2. Размерность новой матрицы будет 4х6 с числом от 1 до 24.

matrix_a2 <-matrix(13:24, byrow = FALSE, ncol = 3)

Вывод:

##      [,1] [,2] [,3]
## [1,]   13   17   21
## [2,]   14   18   22
## [3,]   15   19   23
## [4,]   16   20   24

Пример:

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)		
matrix_d <- cbind(matrix_a2, matrix_c)
dim(matrix_d)

Вывод:

## [1] 4 6

ПРИМЕЧАНИЕ : количество строк матриц должно быть равным для работы cbind

cbind () объединяет столбцы, rbind () добавляет строки. Давайте добавим одну строку в нашу матрицу matrix_c и проверим размерность 5×3

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)
# Create a vector of 3 columns
add_row <- c(1:3)
# Append to the matrix
matrix_c <- rbind(matrix_c, add_row)
# Check the dimension
dim(matrix_c)

Вывод:

## [1] 5 3

Нарезать матрицу

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

Например:

  • matrix_c [1,2] выбирает элемент в первой строке и во втором столбце.
  • matrix_c [1: 3,2: 3] приводит к матрице с данными в строках 1, 2, 3 и столбцах 2, 3,
  • matrix_c [, 1] выбирает все элементы первого столбца.
  • matrix_c [1,] выбирает все элементы первого ряда.

Вот вывод, который вы получите для вышеуказанных кодов

R Matrix Tutorial