Домашнее задание

Написание функций и векторизованные операции

Автор

Анна Валяева

Дата публикации

20 октября 2025 г.

Задание 1

Напишите несколько функций для моделирования подбрасывания кубика.

Задание 1.1

Напишите функцию, которая возвращает результат подбрасывания одного “честного” шестигранного кубика. Продемонстрируйте работу функции. Нужно ли устанавливать seed?

Задание 1.2

Напишите функцию, которая возвращает результат подбрасывания двух “честных” шестигранных кубиков. Продемонстрируйте работу функции.

Задание 1.3

Напишите функцию, которая возвращает результат подбрасывания нескольких “честных” шестигранных кубиков. Число кубиков задается параметром n. Продемонстрируйте работу функции.

Задание 1.4

Напишите функцию, которая возвращает результат подбрасывания “честного” кубиков с заданным числом граней. Число граней задается параметром sides. Продемонстрируйте работу функции.

Задание 1.5

Напишите функцию, которая возвращает результат подбрасывания нескольких “честного” кубиков с заданным числом граней. Число граней задается параметром sides (пусть по умолчанию оно будет равно 6). Число кубиков задается параметром n. Продемонстрируйте работу функции.

Задание 2

Задание 2.1

Напишите функцию, которая бы считала процент пропущенных значений в векторе. Продемонстрируйте корректность работы функции на двух примерах: на векторе и датафрейме (например, встроенный датасет msleep).

Задание 2.2

Напишите функцию, которая бы считала количество позиций, в которых в двух векторах одновременно находятся пропущенные значения. Продемонстрируйте корректность работы функции на небольшом примере.

Задание 3

Работайте с датасетом msleep. Отберите 3 наиболее многочисленных отряда животных, представленных в этом наборе данных.

Напишите функцию, которая бы для выбранного отряда животных рисовала распределения значений массы тела и мозга, а также общей длительности сна в виде ящиков с усами и скрипичных диаграмм. Для каждого визуализируемого признака должно производиться сравнение между группами животных, разделенных по типу питания. 3 визуализируемых признака должны быть совмещены на одном графике с помощью фасетов. Учитывайте наличие пропущенных значений в наборе данных msleep.

На вход ваша функция должна принимать датафрейм и название отряда.

На выход ваша функция должна возвращать график, а также датафрейм, который содержит те значения статистик, которые визуализированы с помощью ящика с усами (медиана - median(), квартили - quantile(), межквартильный размах - IQR()).

Сохраните графики в файлы.

Полученные датафреймы со статистиками объедините в один датафрейм (не потеряйте информацию об отряде животных) и запишите в файл.

Задание 4

Напишите функцию, которая отрисовывает графики распределения значений в векторе - гистограмму для численного признака или столбчатую диаграмму в случае категориального признака.

Примените эту функцию так, чтобы для каждого стообца датафрейма msleep был отрисован собственный график. Получите список из таких графиков.

Дополнительно модифицируйте вашу функцию так, чтобы заголовок на графике содержал название столбца (название признака).

Сохраните графики в файлы. Названия файлов должны отражать названия признаков, которые вы визуализировали.