Добавить в цитаты Настройки чтения

Страница 3 из 12



> вектор.В<-0.5:6

> вектор.В

[1] 0.5 1.5 2.5 3.5 4.5 5.5

> # перевести количественные данные вектора В в текстовые можно так:

> вектор.В<-as.character(вектор.В)

# по-русски: вектор.В<-как.текст(вектор.В)

# проверить являются ли данные вектора В текстовыми можно так:

> is.character(вектор.В)

# по-русски: текст.ли(вектор.В)

[1] TRUE

# перевести текстовые данные вектора В в количественные данные можно так:

> вектор.В<-as.numeric(вектор.В)

# проверить, являются ли данные вектора В количественными можно так:

> is.numeric(вектор.В)

[1] TRUE

> вектор.В

[1] 0.5 1.5 2.5 3.5 4.5 5.5

Элементы в рамках одного вектора могут быть только одного типа, но различные векторы могут содержать данные различных типов. При этом все элементы вектора с текстом при объединении заключаются в кавычки:

> Текстовый.вектор.Г<– c('элемент1','элемент2', 'элемент3')

> Текстовый.вектор.Г

[1] "элемент1" "элемент2" "элемент3"

> class(вектор.Г)

[1] "character"

> Логический.вектор.Д<– c(TRUE, FALSE, TRUE, FALSE, TRUE)

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

# Логический.вектор.Д<– c(ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ, ИСТИНА)

> Логический.вектор.Д

[1] TRUE FALSE TRUE FALSE TRUE

> # определите тип данных вектора Д можно так:

> class(вектор.Д)

[1] "logical"

Подробнее о векторах с логическими данными можно узнать, введя команду help("&"). Эту команду легко запомнить, если знать, что слово help в переводе на русский означает помощь.

Класс или тип объекта в R можно определить с помощью функции class() так:

> class(вектор.А)

# числовой вектор

[1] "numeric"

> class(Текстовый.вектор.Г)

# текстовый вектор

[1] "character"

> class(Логический.вектор.Д)

# логический вектор

[1] "logical"

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

> Текстовый.вектор.Г[2]

[1] "элемент2"

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

> вектор.Б

[1] 0 2 4

> вектор.Б[-1]

[1] 2 4

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

> вектор.Б[1]<-0

> вектор.Б

[1] 0 2 4

В R основным типом данных являются данные количественного ("numeric") и текстового типа ("character"). При этом данные количественного типа ("numeric") представляются собой действительные числа, которые могут быть представлены в виде дробей. В то время как данные логического типа (“logical”), факторы (“factor”) и целые числа (“integer”) считаются дополнительными. Причем, дополнительный тип данных(“integer”) хранит количественные данные в формате целых чисел (“integer”). Преобразование из "numeric" в “integer” можно выполнить следующим образом:

> вектор.В<-0.5:6

> вектор.В

# числа в векторе представлены в виде чисел с десятичными дробями

[1] 0.5 1.5 2.5 3.5 4.5 5.5

> class(вектор.В)

[1] "numeric"

> вектор.В<-as.integer(вектор.В)

# по-русски эту команду можно перевести так:

# вектор.В<-как.целое(вектор.В)

# вектор.В из "numeric" преобразуют в "integer"

> class(вектор.В)

[1] "integer"

> вектор.В

[1] 0 1 2 3 4 5

# числа в векторе представлены в виде целых чисел без дробной части

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

Например, матрицу из последовательности цифр 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]

#Матрица2[, -2 столбец] – перед запятой вместо номера строки оставляют пустое место

[,1] [,2]

[1,] 1 11

[2,] 2 12

[3,] 3 13

[4,] 4 14

[5,] 5 15

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

> Матрица2[, 2]<-16:20

# Матрица2[, 2 столбец] <-16:20

> Матрица2

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

[1,] 1 16 11

[2,] 2 17 12

[3,] 3 18 13

[4,] 4 19 14

[5,] 5 20 15

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

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

# Матрица2[-3 строка, ] – после запятой вместо номера столбца оставляют пустое место

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

[1,] 1 16 11

[2,] 2 17 12

[3,] 4 19 14

[4,] 5 20 15

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