ЛР / ЛР№1_Хакова_Ю_М_ИСТ_223
.docФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Лабораторная работа №1
«Знакомство с пакетом обработки данных R. Типы данных R»
Выполнил: ст. гр. ИСТ-223 Хакова Ю. М.
Проверил: к.т.н., доцент Лабковская Р.Я.
Санкт-Петербург
2024
Цель работы:
Ознакомиться с основными концепциями и функционалом языка программирования R, используемого для обработки и анализа данных.
Задание 1
Ход работы:
Создание переменной my_age с присвоенным числовым значением. (Рис. 1)
Описание условия проверки на совершеннолетие с помощью условных операторов if, else. (Рис. 1)
Вывод результата проверки на консоль. (Рис. 2)
Рис. 1. Код к заданию №1.
Рис. 2. Вывод результата на консоль.
Листинг кода:
my_age = 20
if (my_age >= 18) {
paste('Ваш возраст лет', str(my_age), 'лет, Вы совершеннолетний')
} else {
paste('Ваш возраст лет', str(my_age), 'лет, Вы несовершеннолетний') }
Задание 2
Ход работы:
Запуск справочного сервера и ознакомление с командой scan(). (Рис. 3)
Организация ввода данных с клавиатуры с помощью команды scan(), создание вектора group_height с введенными значениями. (Рис. 4)
Вычисление среднего значения роста по группе с помощью функции mean(). (Рис. 4)
Вычисление отклонения значения роста студентов группы от среднего значения. (Рис. 4)
Вывод результатов на консоль. (Рис. 5)
Рис. 3. Запуск справочного сервера.
Рис. 4. Код к заданию №2.
Рис. 5. Вывод результатов на консоль.
Листинг кода:
print('Введите рост в сантиметрах студентов Вашей группы, закончите ввод двойным нажатием клавиши ENTER')
group_height = scan(file='', what = double())
group_height
ave_height = mean(group_height)
ave_height
delta = group_height - ave_height
delta
Задание 3
Ход работы:
Создание двух матричных переменных – a и b. (Рис. 6)
Создание матрицы с c произведением матриц a и b. (Рис. 6)
Вывод результата на экран. (Рис. 7)
Рис. 6. Код к заданию №3.
Рис. 7. Вывод результатов на консоль.
Листинг кода:
a = matrix(1:9, ncol = 1)
b = matrix(1:9, nrow = 1)
c = a %*% b
rownames(c) = 1:9
colnames(c) = 1:9
print(c)
Задание 4
Ход работы:
Создание вектора vote с помощью команды scan() с результатами голосования. (Рис. 8)
Создание фактора colors_factor с помощью команды factor. (Рис. 8)
Формирование таблицы colors_stat, отражающую количество вхождений каждого фактора. (Рис. 8)
Вывод результата на экран. (Рис. 9)
Рис. 8. Код к заданию №4.
Рис. 8. Вывод результатов на консоль.
Листинг кода:
vote = scan(file = '', what = '', nmax=10)
colors_factor = factor(vote, levels = c("красный", "черный"))
colors_stat = table(colors_factor)
print(colors_stat)
Задание 5
Ход работы:
Создание вектора names, содержащего фамилии студентов. (Рис. 10)
Создание вектора vote с результатами голосования о выборе цвета. (Рис. 10)
Создание вектора height, в котором собрана статистика о росте студентов. (Рис. 10)
Объединение векторов names, vote, height в список my_stats с помощью команды data.frame(). (Рис. 11)
Добавление к набору данных фактор, содержащий значения «Сидорова», «черный», 166. (Рис. 11)
Вывод результата на экран. (Рис. 12)
Рис. 10. Код к заданию №5.
Рис. 11. Список my_stats.
Рис. 12. Вывод результатов на консоль.
Листинг кода:
names = c("Коваленко", "Хакова", "Барабошкин", "Блынский")
vote = c("черное", "красное", "красное", "красное")
height = c(158, 168, 190, 165)
my_stats = data.frame(Names = names, Color = vote,Height = height, stringsAsFactors = TRUE)
my_stats = fix(my_stats)
my_stats
print("Люди выше 170 см:")
print(my_stats$Names[my_stats$Height > 170])
Задание 6
Ход работы:
Создание переменной date1, содержащей информацию о текущей дате, создание переменной date2, содержащей информацию о дате рождения. (Рис. 13)
Вывод на экран переменных date1, date2, количество прожитых дней, лет. (Рис. 14)
Рис. 13. Код к заданию №6.
Рис. 14. Вывод результатов на консоль.
Листинг кода:
date1 = Sys.Date()
date2 = as.POSIXlt("2004-06-19")
paste("Текущая дата:", date1)
paste("Ваша дата рождения:", date2)
days_lived = as.numeric(difftime(date1, date2, units = "days"))
paste("Количество прожитых дней:", days_lived)
years_lived = as.numeric(difftime(date1, date2, units = "weeks")) / 52.25
paste("Количество прожитых лет:", floor(years_lived))
Задание 7
Ход работы:
Создание с помощью редактора данных вектор temperature, который содержит информацию о средней температуре за 24 месяца. (Рис. 15)
Преобразование вектора temperature во временной ряд с помощью функции ts(), начиная с января 2016 г. (Рис. 15)
Построение графика среднемесячных температур за 2016–2017 гг.с помощью команды plot(). (Рис. 16-17)
Рис. 15. Код к заданию №7.
Рис. 16. Список temperature.
Рис. 14. Построение графика.
Листинг кода:
temperature = data.frame(Tempriture = numeric(24))
tempriture = fix(temperature)
temperature.ts <- ts(temperature, start = c(2016, 1), frequency = 12)
plot(temperature.ts, main = "Среднемесячные температуры (2016-2017)",
xlab = "Месяцы", ylab = "Температура", col = "blue", lwd = 2)
Вывод:
В ходе выполнения лабораторной работы были изучены основные типы данных и функции в языке программирования R, а также практические аспекты работы с переменными, векторами и матрицами. В результате выполнения всех заданий была получена практическая база для дальнейшего изучения языка R и его применения в статистическом анализе и обработке данных.
