Ответы, отчеты, курсовые, лекции 1-3 курс (1, 2, 3, 4, 5 семестр) ЧГУ КТ-43-15 / 3 семестр / R Language лабы (Сковорцов) / Анализ данных на языке R
.pdf1 : 67
То есть, это как в Excel, задается первоначальное значение, через двоеточие задается конечное значение. Например, в Excel можно выделить диапазон ячеек, выполнив команду A1:A67.
Естественно мы можем заданный диапазон сохранить в какую-то переменную. При этом наша переменная станет вектором. Вектор в R - последовательность данных одного типа (только целочисленного, вещественного или строкового).
Если мы хотим задать какие-то непоследовательные значения, то используется конструкция c(). В скобках через запятую перечисляются необходимые нам значения. Обратите внимание, что в my.vector2 мы сохраняем первые три значения - целые, четвертое - дробное, пятое и последующие - снова целые. Но в результате все значения принимают вещественный тип, то есть становятся дробными.
my.vector1 <- 1:67
my.vector2 <- c(-32, 45, 67, 12.78, 129, 0, -65)
Мы можем найти интересующее нас значение в векторе при помощи индексов, порядкового номера ячейки памяти в нашем векторе. Например, возьмем переменную my.vector2 и посмотрим, как видит ее компьютер.:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
-32.00 |
45.00 |
67.00 |
12.78 |
129.00 |
0.00 |
-65.00 |
|
|
|
|
|
|
|
То есть, как мы видим на первом месте находится число -32.00, на втором - 45.00 и так далее. Значит, если мы укажем какое-то конкретное положение в векторе, нам выведется соответствующее значение, которое находится на этом месте.
my.vector1[1]
my.vector1[3]
my.vector2[2]
Мы можем задать в качестве индекса не только одно значение, но и несколько значений.
my.vector2[c(1,2,3)]
my.vector2[1:3]
my.vector2[c(1,5,6,7,10)]
С векторами, как и с переменными, мы можем выполнять арифметические или логические операции. При арифметических операциях с каждым значением вектора производится указанная арифметическая операция. При логических операциях каждое значение вектора сравнивается необходимым значением и результатом выводится вектор правдивых и ложных высказываний.
my.vector1 + 10 my.vector2 + 56 my.vector2 %% 2 my.vector2 %/% 2
my.vector2 == 0 my.vector1 > 30
x<- 23 my.vector1 > 23
x== 23
Если вектор правдивых или ложных высказываний помещается в качестве индекса вектора, то результатом индексации станут только те значения, в которых высказывание правдиво.
my.vector2 > 0 my.vector2[my.vector2 > 0] my.vector2[my.vector2 < 0] my.vector2[my.vector2 == 0]
Можно использовать несколько логических операций. Для этого используются булевы функции:
& (И) - возвращает правдивые высказывания только в том случае, если значения правдивы для обеих логических операций, в остальных - ложные. Например:
my.vector1[my.vector1 > 20 & my.vector1 < 30]
| (ИЛИ) - возвращает правдивые высказывания в том случае, если значения правдивы для одной из логических операций.
my.numbers <- my.vector1[my.vector1 > 20 | my.vector1 < 30]
positive.numbers <- my.vector2[my.vector2 > 0]
Надо отметить, что в отличии от других языков программирования R может возвращать при выполнении булевых функций не только
одно правдивое или ложное высказывание, но и целый вектор высказываний. Чтобы результатом было одно значение, используется булевы функции следующей конструкции: “&&” или
“||”.
В статистике часто необходимо находить среднее арифметическое каких-то значений. При помощи функции mean в R это можно сделать легко и просто.
v1 <- c(165, 178, 180, 181, 167, 178, 187, 167, 187) mean.v1 <- mean(v1)
v1[v1 > mean.v1]
greater.than.mean <- v1[v1 > mean.v1]
Для удобства работы с данными и более наглядного их представления часто используют таблицы. Одним из способов создать табличный вид данных - это использование data.frame. Например, создадим три вектора, в которых сохраним некоторые данные:
age <- c(16, 18, 22, 27) is.maried <- c(F, F, T, T)
name <- c("Olga", "Maria", "Nastya", "Polina")
А теперь используем data.frame, в котором пропишем наши переменные, которые будут играть роль столбцов таблицы. Чтобы названия наших столбцов были удобочитаемыми, можно записать наши переменные (или результаты работы с переменными) в ещё одни переменные.
my.data <- data.frame(Name = name, Age = age, Status = is.maried)
Задание 1. Ваша задача создать несколько векторов с ФИО студентов группы, их возрастом, оценками по нескольким предметам. После этого создать новый dataframe, в котором будут выведены только те значения, значения которых будут удовлетворять следующему условию: значение столбца должны быть больше среднего значения.