На занятии мы познакомились и установили коллекцию пакетов Tidyverse.
Работу с data.frame вы уже изучили, так что осталось немножко
посмотреть на синтаксис Tidyverse - будем работать с пакетом
dplyr. Можете искать информацию, например, через Help в
RStudio или тут.
Все задания решайте с помощью средств пакета dplyr, если
не указано обратное.
В некоторых заданиях логично было бы вывести сначала объект (или его часть) ДО манипуляций, а затем ПОСЛЕ, чтобы продемонстрировать, что манипуляция совершена и совершена верна
Давайте вспомним, как устанавливаются пакеты.
Установие пакет openintro из репозитория CRAN.
Воспользуйтесь набором данных 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, но я вам снова ничего не
говорила