Страница 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
Отдельную строку матрицы можно вставить, указав ее номер в квадратных скобках, и приравняв ее к вектору вставляемых определенных значений