T ( A ) # Возвращает транспонированную матрицу для А
Матрицы.
Матрица – это прямоугольный массив данных (матрица имеет 2 измерения), содержащий элементы одного типа (численные, текстовые, логические).
Для создания матрицы используется функция matrix.
Пример 1
Создадим матрицу А, её элементы – числа от 1 до 9, число строк = 3.
A = matrix(1:9,nrow=3)
A
## [,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Обратите внимание, что элементы матрицы автоматически формируются по столбцам. Если мы хотим формировать матрицу по строкам, необходимо добавить условие byrow=TRUE
B = matrix(1:9,nrow=3,byrow=TRUE)
B
## [,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
__________________________________________________________________________
Строки и столбцы матрицы могут иметь название.
Строки и столбцы матрицы, а также их названия могут формироваться при помощи векторов.
___________________________________________________________________________
Пример 2. # Взрослые выжившие пассажиры Титаника
Сформируем матрицу для анализа данных о выживших пассажирах лайнера Титаник. По строкам будут указаны классы, которыми ехали пассажиры, по столбцам – пол пассажиров.
# Зададим векторы, из которых позже сформируем строки матрицы:
first_class = c(57, 140)
second_class = c(14, 80)
third_class = c(75, 76)
crew = c(192, 20)
# Создание матрицы
adults_survived = matrix(c(first_class, second_class, third_class, crew), nrow = 4, byrow = TRUE)
adults_survived
#На этом шаге получаем матрицу
[,1] [,2]
[1,] 57 140
[2,] 14 80
[3,] 75 76
[4,] 192 20
# Присвоим имена строкам и столбцам полученной матрицы (функция colnames())
# Создание векторов для пола пассажиров и класса обслуживания
|
|
gender = c("male", "female")
class = c("1st class", "2nd class", "3rd class", "crew" )
# Столбцы матрицы указывают на пол пассажиров
colnames(adults_survived) = gender
# Строки указывают на класс обслуживания
rownames(adults_survived) = class
#Матрица adults_survived выводится на экран
adults_survived
В итоге получаем матрицу
## male female
1st class 57 140
2nd class 14 80
3rd class 75 76
crew 192 20
______________________________________________________________________________
Чтобы посчитать сумму элементов в каждой строке матрицы, используется функция rowSums().
both_genders_survived = rowSums(adults_survived)
both_genders_survived
## 1st class 2nd class 3rd class crew
## 197 94 151 212
Чтобы посчитать сумму элементов в каждом столбце матрицы, используется функция сolSums().
all_classes_survived = colSums(adults_survived)
all_classes_survived
## male female
## 338 316
Как и с векторами, для выбора элементов матрицы используют квадратные скобки []. Но в отличие от векторов, матрицы представляют собой двумерный массив и поэтому требуется указание на двойной индекс.
Например:
#выбор элемента на пересечении третьей строки и второго столбца:
adults_survived[3,2]
## [1] 76
Выбор элементов в первых двух строках и первом столбце
adults_survived[1:2,1]
## 1st class 2nd class
## 57 14
# Выбор всех элементов в первом столбце
|
|
adults_survived [ ,1]
## 1st class 2nd class 3rd class crew
## 57 14 75 192
Матрицы. Арифметические операции
Стандартные операции +, - могут применяться к элементам матрицы
Создадим матрицу adults_dead (погибшие взрослые пассажиры Титаника)
Зададим вектор числовых значений (обратите внимание, что необязательно использовать отдельные векторы для задания строк или столбцов матрицы, все элементы матрицы могут задаваться одним вектором!!!!)
v = c(118,4,154,13,387,89,670,3)
Создадим матрицу
adults_dead = matrix(v,nrow=4,byrow=TRUE)
adults_dead
На этом шаге получаем матрицу
[,1] [,2]
[1,] 118 4
[2,] 154 13
[3,] 387 89
[4,] 670 3
# Присвоим имена строкам и столбцам полученной матрицы (функция colnames())
# Создание векторов для пола пассажиров и класса обслуживания
gender = c("male", "female")
class =c("1st class", "2nd class", "3rd class", "crew" )
# Столбцы матрицы указывают на пол пассажиров
colnames(adults_dead) = gender
# Строки указывают на класс обслуживания
rownames(adults_dead) = class
#Матрица adults_dead выводится на экран
adults_dead
В итоге получаем матрицу
male female
1st class 118 4
2nd class 154 13
3rd class 387 89
crew 670 3
Найдем сумму элементов матриц
all_passengers = adults_survived + adults_dead
all_passengers
|
|
## male female
## 1st class 175 144
## 2nd class 168 93
## 3rd class 462 165
## crew 862 23
Чтобы соединить матрицы горизонтально (увеличивается число столбцов), используется функция cbind
cbind(adults_survived, adults_dead)
## male female male female
## 1st class 57 140 118 4
## 2nd class 14 80 154 13
## 3rd class 75 76 387 89
## crew 192 20 670 3
Чтобы соединить матрицы вертикально (увеличивается число строк), используется функция rbind
rbind(adults_survived, adults_dead)
## male female
## 1st class 57 140
## 2nd class 14 80
## 3rd class 75 76
## crew 192 20
## 1st class 118 4
## 2nd class 154 13
## 3rd class 387 89
## crew 670 3
Некоторые наиболее часто используемые операции с матрицами:
t ( A ) # Возвращает транспонированную матрицу для А
Дата добавления: 2022-01-22; просмотров: 25; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!