Размер шрифта
-
+

Как предсказать курс доллара. Поиск доходной стратегии с языком R - стр. 7

Например, матрицу из последовательности цифр 1,2 …15 из трех строк (nrow=3) можно создать следующим образом:

> Матрица1 <– matrix(1:15, nrow=3)

# эта команда создает матрицу из вектора 1:15=1,2 … 15

# количество строк в этой команде задается аргументом nrow

# если объект x (в этой команде он =1:15) не обладает достаточной длиной

# его элементы при создании матрицы будут использованы повторно ("recycling")

# если бы R понимал по-русски, то эту команду можно было бы ввести так:

# Матрица1 <– матрица(1:15, число строк=3)

# 1:15 означает последовательность 1, 2 … 15

> Матрица1

[,1] [,2] [,3] [,4] [,5]

[1,] 1 4 7 10 13

[2,] 2 5 8 11 14

[3,] 3 6 9 12 15

Эту же матрицу, но из трех столбцов (ncol=3) можно создать следующим образом:

> Матрица2 <– matrix(1:15, ncol=3)

# количество столбцов задается аргументом ncol

> Матрица2

[,1] [,2] [,3]

[1,] 1 6 11

[2,] 2 7 12

[3,] 3 8 13

[4,] 4 9 14

[5,] 5 10 15

Отдельный элемент матрицы можно извлечь, обозначив его положение (номер строки и номер столбца) в квадратных скобках:

> Матрица2[3,2]

[1] 8

Отдельный элемент матрицы можно удалить (указав со знаком минус номер удаляемого элемента, предварительно определив его порядковый номер, считая от начала первой строки первой колонки и до конца последней строки последней колонки), но в результате она становится вектором:

> Матрица2[-8]

[1] 1 2 3 4 5 6 7 9 10 11 12 13 14 15

Отдельный элемент можно вставить в матрицу, указав в квадратных скобках положение (номер строки и номер столбца) куда его нужно вставить и приравняв его к определенному значению:

> Матрица2[3,2]<– NaN

> Матрица2

[,1] [,2] [,3]

[1,] 1 6 11

[2,] 2 7 12

[3,] 3 NaN 13

[4,] 4 9 14

[5,] 5 10 15

NaN– по-английски означает Not-a-Number-«не число». NaN получается в результате: деления 0 на 0, деления 0 на бесконечность, деления бесконечности на бесконечность, умножения 0 на бесконечность, сложения бесконечности с бесконечностью противоположного знака, вычисления квадратного корня отрицательного числа, логарифмирования отрицательного числа, а также в результате всех математических операций с использованием NaN в качестве одного из операндов. В R бесконечность обозначается как Inf. Например, в результате деления Inf на Inf получаем NaN:

> Inf/Inf

[1] NaN

Чтобы NAN в Матрице 2 заменить на нуль нужно ввести такой код:

> Матрица2[is.na(Матрица2)]<-0

# по-русски: Матрица2[является. nan (Матрица2)]<-0

> Матрица2

[,1] [,2] [,3]

[1,] 1 6 11

[2,] 2 7 12

[3,] 3 0 13

[4,] 4 9 14

[5,] 5 10 15

Отдельный столбец матрицы можно удалить, указав со знаком минус номер удаляемого столбца:

> Матрица2[, -2]

Страница 7