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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!