Дедлайн - 28 сентября 2023 23:59


На занятии мы кратко познакомились и установили коллекцию пакетов Tidyverse.

Работу с data.frame вы уже изучили, так что осталось немножко посмотреть на синтаксис Tidyverse - будем работать с пакетом dplyr. Можете искать информацию, например, через Help в RStudio или тут.

Все задания решайте с помощью средств пакета dplyr, если не указано обратное.

Обратите особое внимание на оформление домашнего задания и правила, озвученные на занятии.

Ориентируйтесь на файл с примером test.Rmd

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

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

Решение каждого задания должно позволять проверить корректность манипуляций без дополнительных действий со стороны преподавателя. Пример: в задании просят создать вектор; после выполнения соответствующей команды выведите получившейся вектор (или его начало, если вектор длинный) в явном виде, чтобы продемонстрировать результат. Обратите внимание на функции head() и tail()

НЕ НУЖНО в отчете выводить полностью длинные вектора, матрицы и пр. Это будет штрафоваться

В некоторых заданиях логично было бы вывести сначала объект (или его часть) ДО манипуляций, а затем ПОСЛЕ, чтобы продемонстрировать, что манипуляция совершена и совершена верна

На основании заполненного .Rmd файла создайте .html файл

Присылать заполненные .Rmd тетрадки и .html файл необходимо через гугл-форму


Задание №1

Воспользуйтесь набором данных nycflights из пакета openintro.

Примените к данным nycflights функцию glimpse().

С помощью glimpse() можно получить сводку о данных, аналог str().

Выведите результат полностью.

Задание №2

Есть ли в данных nycflights пропущенные значения?

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

Задания №3

Для фильтрации строк по условию используйте функцию filter().

Будет в самостоятельной работе

Отберите из набора данных nycflights июньские (столбец month) рейсы, которые вылетели (столбец origin) из аэропорта JFK и прилетели (столбец dest) в аэропорты LAX или ROC. Выполните фильтрацию за одну команду. Покажите, что вы точно отобрали только нужные аэропорты.

Сколько рейсов подходят под условия?

Задание №4

Для выбора колонок по индексу и имени используйте функцию select()

Давайте начнем с индексов.

Воспользуйтесь подвыборкой рейсов, полученных в задании №3.

Отберите наиболее оптимальным способом первую, вторую, третью, одиннадцатую и двенадцатую колонки.

Не забывайте демонтрировать корректность решения!!

Задание №5

Теперь отберем колонки по имени.

Будет в самостоятельной работе

Воспользуйтесь подвыборкой рейсов, полученных в задании №3.

Удалите колонку с аэропортами, куда прилетали рейсы.

Задание №6

Не всегда можно и нужно перечислять в явном виде индексы или имена колонок для фильтрации.

Оставлять или удалять колонки можно на основании общих аттрибутов в их названиях.

Воспользуйтесь подвыборкой рейсов, полученных в задании №4.

Оставьте только колонки, иена которых начинаются с буквы d. Примените связку select() + starts_with()

Задание №7

Необходимый паттерн в названии колонки не обязательно находится в начале названий.

Воспользуйтесь подвыборкой рейсов, полученных в задании №3.

Оставьте только такие колонки, которые в названии содержат “_” в любом месте. Примените связку select() + contains()

Задание №8

Отбирать строки по позициям можно с помощью функции slice()

Воспользуйтесь подвыборкой рейсов, полученных в задании №4.

Отберите первую, пятую и десятую строки.

Задание №9

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

Отберите первые 8 строк из полного набора данных nycflights.

Задание №10

Очень полезно уметь отбирать случайным образом строки из набора данных.

Функция slice_sample() помогает это сделать разными способоами.

Выберите случайным образом 10 строк из полного набора данных nycflights.

Помните, что задания с случайным выбором должны быть воспроизводимы.

Задание №11

Отберите случайным образом 10% строк из набора данных nycflights.

Для выполнения задания исследуйте параметры функции slice_sample().

Задание №12

Обратите внимание на параметр weight_by функции slice_sample().

Для чего он нужен? Продемонстрируйте его работу на любом примере.

Задание №13

Воспользуйтесь подвыборкой рейсов, полученных в задании №3.

Выберите столбец tailnum двумя способами: с помощью функций pull() и select().

В чем разница?

Задание №14

С помощью функции arrange() можно отсортировать данные по одному или нескольким столбцам по убыванию ли возрастанию.

Воспользуйтесь подвыборкой рейсов, полученных в задании №4.

Отсортируйте набор данных по столбцу day по убыванию.

Задание №15

Добавить новый столбец к набору данных можно с помощью функции mutate().

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

Воспользуйтесь подвыборкой рейсов, полученных в задании №4.

Добавьте к данным столбец YMD, который представляет собой слияние столбцов year, month, day вида: year_month_day (пример: 2023_9_18).

Задание №16

С помощью функции transmute() можно создать новые колонки, удалив при этом все колонки, которые были раньше.

Воспользуйтесь исходными данными nycflights.

Создайте и оставьте только колонки:

Задание №17

Переименовать колонки можно с помощью функции rename().

Воспользуйтесь исходными данными nycflights.

Переименуйте колонку dep_delay в Departure_delays_min.

Задание №18

Переименовать колонки можно, применив к названиям какую-то единообразную операцию.

Это можно сделать с помощью функции rename_with().

Воспользуйтесь подвыборкой рейсов, полученных в задании №4.

Сделайте все буквы в названиях всех колонок заглавными.

Задание №19

Оставить только уникальные строки в наборе данных или в конкретном столбце можно с помощью функции distinct().

Воспользуйтесь исходными данными nycflights.

Выведите только уникальные значения столбца dest.

Задание №20

n() - выводит число записей.

Отберите последние 10 строк из набора данных nycflights, используя функцию n().

Задание №21

Воспользуйтесь полным набором данных nycflights.

С помощью средств базовой графики визуализируйте количество рейсов в каждом месяце.

Подпишите оси и название графика.

Задание №22

Воспользуйтесь полным набором данных nycflights.

С помощью средств базовой графики визуализируйте распределение времени задержки прибытия рейса (столбец arr_delay).

Подпишите оси и название графика.

Задание №23

Воспользуйтесь полным набором данных nycflights.

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

Подпишите оси и название графика.

Задание №24

Решите задание №3 с помощью базового R.

Задание №25

Решите задание №15 с помощью базового R.


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