Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР / ЛР№1_Хакова_Ю_М_ИСТ_223

.doc
Скачиваний:
0
Добавлен:
07.06.2026
Размер:
2.89 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Лабораторная работа №1

«Знакомство с пакетом обработки данных R. Типы данных R»

Выполнил: ст. гр. ИСТ-223 Хакова Ю. М.

Проверил: к.т.н., доцент Лабковская Р.Я.

Санкт-Петербург

2024

Цель работы:

Ознакомиться с основными концепциями и функционалом языка программирования R, используемого для обработки и анализа данных.

Задание 1

Ход работы:

  1. Создание переменной my_age с присвоенным числовым значением. (Рис. 1)

  2. Описание условия проверки на совершеннолетие с помощью условных операторов if, else. (Рис. 1)

  3. Вывод результата проверки на консоль. (Рис. 2)

Рис. 1. Код к заданию №1.

Рис. 2. Вывод результата на консоль.

Листинг кода:

my_age = 20

if (my_age >= 18) {

paste('Ваш возраст лет', str(my_age), 'лет, Вы совершеннолетний')

} else {

paste('Ваш возраст лет', str(my_age), 'лет, Вы несовершеннолетний') }

Задание 2

Ход работы:

  1. Запуск справочного сервера и ознакомление с командой scan(). (Рис. 3)

  2. Организация ввода данных с клавиатуры с помощью команды scan(), создание вектора group_height с введенными значениями. (Рис. 4)

  3. Вычисление среднего значения роста по группе с помощью функции mean(). (Рис. 4)

  4. Вычисление отклонения значения роста студентов группы от среднего значения. (Рис. 4)

  5. Вывод результатов на консоль. (Рис. 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

Ход работы:

  1. Создание двух матричных переменных – a и b. (Рис. 6)

  2. Создание матрицы с c произведением матриц a и b. (Рис. 6)

  3. Вывод результата на экран. (Рис. 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

Ход работы:

  1. Создание вектора vote с помощью команды scan() с результатами голосования. (Рис. 8)

  2. Создание фактора colors_factor с помощью команды factor. (Рис. 8)

  3. Формирование таблицы colors_stat, отражающую количество вхождений каждого фактора. (Рис. 8)

  4. Вывод результата на экран. (Рис. 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

Ход работы:

  1. Создание вектора names, содержащего фамилии студентов. (Рис. 10)

  2. Создание вектора vote с результатами голосования о выборе цвета. (Рис. 10)

  3. Создание вектора height, в котором собрана статистика о росте студентов. (Рис. 10)

  4. Объединение векторов names, vote, height в список my_stats с помощью команды data.frame(). (Рис. 11)

  5. Добавление к набору данных фактор, содержащий значения «Сидорова», «черный», 166. (Рис. 11)

  6. Вывод результата на экран. (Рис. 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

Ход работы:

  1. Создание переменной date1, содержащей информацию о текущей дате, создание переменной date2, содержащей информацию о дате рождения. (Рис. 13)

  2. Вывод на экран переменных 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

Ход работы:

  1. Создание с помощью редактора данных вектор temperature, который содержит информацию о средней температуре за 24 месяца. (Рис. 15)

  2. Преобразование вектора temperature во временной ряд с помощью функции ts(), начиная с января 2016 г. (Рис. 15)

  3. Построение графика среднемесячных температур за 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 и его применения в статистическом анализе и обработке данных.