Дедлайн - 28 сентября 2023 23:59
На занятии мы кратко познакомились и установили коллекцию пакетов Tidyverse.
Работу с data.frame вы уже изучили, так что осталось немножко
посмотреть на синтаксис Tidyverse - будем работать с пакетом
dplyr
. Можете искать информацию, например, через Help в
RStudio или тут.
Все задания решайте с помощью средств пакета dplyr
, если
не указано обратное.
Обратите особое внимание на оформление домашнего задания и правила, озвученные на занятии.
Ориентируйтесь на файл с примером test.Rmd
При решении заданий приводите весь код, который вам понадобился для получения ответа.
Не забывайте класть результаты в отдельные переменные, результат одного задания может быть нужен для решения другого задания.
Решение каждого задания должно позволять проверить корректность манипуляций без дополнительных действий со стороны преподавателя. Пример: в задании просят создать вектор; после выполнения соответствующей команды выведите получившейся вектор (или его начало, если вектор длинный) в явном виде, чтобы продемонстрировать результат. Обратите внимание на функции head() и tail()
НЕ НУЖНО в отчете выводить полностью длинные вектора, матрицы и пр. Это будет штрафоваться
В некоторых заданиях логично было бы вывести сначала объект (или его часть) ДО манипуляций, а затем ПОСЛЕ, чтобы продемонстрировать, что манипуляция совершена и совершена верна
На основании заполненного .Rmd файла создайте .html файл
Присылать заполненные .Rmd тетрадки и .html файл необходимо через гугл-форму
Воспользуйтесь набором данных nycflights из пакета openintro.
Примените к данным nycflights функцию
glimpse()
.
С помощью glimpse()
можно получить сводку о данных,
аналог str()
.
Выведите результат полностью.
Есть ли в данных nycflights пропущенные значения?
Используя функции базового R выведите сумму пропущенных значений в наборе данных.
Для фильтрации строк по условию используйте функцию
filter()
.
Будет в самостоятельной работе
Отберите из набора данных nycflights июньские (столбец month) рейсы, которые вылетели (столбец origin) из аэропорта JFK и прилетели (столбец dest) в аэропорты LAX или ROC. Выполните фильтрацию за одну команду. Покажите, что вы точно отобрали только нужные аэропорты.
Сколько рейсов подходят под условия?
Для выбора колонок по индексу и имени используйте функцию
select()
Давайте начнем с индексов.
Воспользуйтесь подвыборкой рейсов, полученных в задании №3.
Отберите наиболее оптимальным способом первую, вторую, третью, одиннадцатую и двенадцатую колонки.
Не забывайте демонтрировать корректность решения!!
Теперь отберем колонки по имени.
Будет в самостоятельной работе
Воспользуйтесь подвыборкой рейсов, полученных в задании №3.
Удалите колонку с аэропортами, куда прилетали рейсы.
Не всегда можно и нужно перечислять в явном виде индексы или имена колонок для фильтрации.
Оставлять или удалять колонки можно на основании общих аттрибутов в их названиях.
Воспользуйтесь подвыборкой рейсов, полученных в задании №4.
Оставьте только колонки, иена которых начинаются с буквы
d
. Примените связку select()
+
starts_with()
Необходимый паттерн в названии колонки не обязательно находится в начале названий.
Воспользуйтесь подвыборкой рейсов, полученных в задании №3.
Оставьте только такие колонки, которые в названии содержат “_” в
любом месте. Примените связку select()
+
contains()
Отбирать строки по позициям можно с помощью функции
slice()
Воспользуйтесь подвыборкой рейсов, полученных в задании №4.
Отберите первую, пятую и десятую строки.
Для вывода шапки набора данных можно использовать, например, функцию
slice_head()
, аналог функции head()
из
базового R.
Отберите первые 8 строк из полного набора данных nycflights.
Очень полезно уметь отбирать случайным образом строки из набора данных.
Функция slice_sample()
помогает это сделать разными
способоами.
Выберите случайным образом 10 строк из полного набора данных nycflights.
Помните, что задания с случайным выбором должны быть воспроизводимы.
Отберите случайным образом 10% строк из набора данных nycflights.
Для выполнения задания исследуйте параметры функции
slice_sample()
.
Обратите внимание на параметр weight_by
функции
slice_sample()
.
Для чего он нужен? Продемонстрируйте его работу на любом примере.
Воспользуйтесь подвыборкой рейсов, полученных в задании №3.
Выберите столбец tailnum двумя способами: с помощью функций
pull()
и select()
.
В чем разница?
С помощью функции arrange()
можно отсортировать данные
по одному или нескольким столбцам по убыванию ли возрастанию.
Воспользуйтесь подвыборкой рейсов, полученных в задании №4.
Отсортируйте набор данных по столбцу day по убыванию.
Добавить новый столбец к набору данных можно с помощью функции
mutate()
.
Новый столбец может быть результатом различных манипуляций, проведенных с уже существующими столбцами.
Воспользуйтесь подвыборкой рейсов, полученных в задании №4.
Добавьте к данным столбец YMD, который представляет собой слияние столбцов year, month, day вида: year_month_day (пример: 2023_9_18).
С помощью функции transmute()
можно создать новые
колонки, удалив при этом все колонки, которые были раньше.
Воспользуйтесь исходными данными nycflights.
Создайте и оставьте только колонки:
YMD: аналогичная описанной в задании №15
dep_delay_abs: абсолютные значения колонки dep_delay
arr_delay_abs: абсолютные значения колонки arr_delay
Переименовать колонки можно с помощью функции
rename()
.
Воспользуйтесь исходными данными nycflights.
Переименуйте колонку dep_delay в Departure_delays_min.
Переименовать колонки можно, применив к названиям какую-то единообразную операцию.
Это можно сделать с помощью функции rename_with()
.
Воспользуйтесь подвыборкой рейсов, полученных в задании №4.
Сделайте все буквы в названиях всех колонок заглавными.
Оставить только уникальные строки в наборе данных или в конкретном
столбце можно с помощью функции distinct()
.
Воспользуйтесь исходными данными nycflights.
Выведите только уникальные значения столбца dest.
n()
- выводит число записей.
Отберите последние 10 строк из набора данных nycflights,
используя функцию n()
.
Воспользуйтесь полным набором данных nycflights.
С помощью средств базовой графики визуализируйте количество рейсов в каждом месяце.
Подпишите оси и название графика.
Воспользуйтесь полным набором данных nycflights.
С помощью средств базовой графики визуализируйте распределение времени задержки прибытия рейса (столбец arr_delay).
Подпишите оси и название графика.
Воспользуйтесь полным набором данных nycflights.
С помощью средств базовой графики изобразите точковую диаграму времени задержки отправления от задержки прибытия рейсов. Добавьте окрашивание по месяцам.
Подпишите оси и название графика.
Решите задание №3 с помощью базового R.
Решите задание №15 с помощью базового R.
на самостоятельной работе будет задание на фильтрацию таблицы по
строкам и столбцам средствами tidyverse, но я вам снова ничего не
говорила