Формат сдачи

Срок сдачи: 7 июня 2019, 23:59

Формат сдачи: Результат выполнения домашнего задания 5: файл с расширением .Rmd (заполненный шаблон со страницы курса). Этот файл нужно загрузить по ссылке.

Задание 1

В этом задании вам предлагается поработать с базами данных, в которых сохранена информация о том, как называли детей в Москве 2015 – 2017 годах. Данные взяты с Портала открытых данных, сведения о наиболее популярных мужских/женских именах среди новорожденных.

Вам предложены два датасета boys.csv и girls.csv, содержащие следующие переменные:

  • Name: имя;

  • NumberOfPersons: число детей, названных этим именем;

  • Year: год;

  • Month: месяц.

  1. Загрузите базы данных boys.csv и girls.csv. Обратите внимание на кодировку и разделитель столбцов + считайте, что текстовые переменные должны считываться как текст, а не как факторы (аргумент stringsAsFactors).

  2. Используя библиотеку dplyr, создайте в базах имен столбец gender (тип factor), все значения которого равны “M” (для базы имен мальчиков) или “F” (для базы имен девочек). Соедините две базы имен по строкам и сохраните результат в переменную total. Подсказка: функция rbind().

  3. Даны два вектора имен:

    G <- c("Анастасия", "Валентина", "Дарья", "Евгения", "Елизавета",  "Ирина", "Камила", "Полина",  "Светлана", "Юлия")
    B <- c("Андрей", "Артём", "Александр", "Всеволод", "Даниил", "Денис", "Игорь", "Илья", "Кирилл", "Никита", "Сергей")

    Выберите из базы данных total строки, соответствующие этим именам, сохраните результат в переменную small.

  4. В этом задании вам нужно будет визуализировать динамику популярности имен в течение двух лет. Для построения линейного графика (line plot) вам потребуется создать временную шкалу – склеить и преобразовать столбцы Year и Month:

    library(zoo) # для функции as.yearmon()
    small <- small %>% mutate(date = paste(Year, Month, sep = "-"))
    small <- small %>% mutate(date = as.Date(as.yearmon(date, "%Y-%b")))

    Если библиотека zoo не установлена, установите ее. Создайте столбец date, используя код выше. Посмотрите на него, определите его тип.

  5. Постройте с помощью библиотеки ggplot2 линейный график (line plot), такой, чтобы по нему можно было определить динамику популярности имен девочек и мальчиков (временную шкалу мы уже создали в date). При этом постройте графики для женских и мужских имен в отдельных ячейках. Подсказка: график на этом этапе должен выглядеть примерно так.

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

    Поправьте шкалу по оси x таким образом, чтобы на оси были отметки времени через каждые 6 месяцев (см. help для слоя scale_x_date), причем формат даты должен быть “номер месяца-год полностью” (например, “01-2015”). Подсказка: чтобы понять, каким образом выставить нужный формат даты, поиграйте с аргументом date_labels внутри scale_x_date. Другими словами, поподставляйте разные варианты: “%m-%y”, “%m-%Y”, “%b-%y”, “%b-%Y”. И определите, что вам подходит.

    Поверните подписи на оси x на 60 градусов, чтобы даты не накладывались друг на друга. Подсказка: слой theme() и аргумент axis.text.x = element_text() в нем.

Задание 2

На основе отчета Deloitte о потребительских расходах в зимние праздники 2017, была составлена база данных ny_gifts.csv. Описание переменных:

  • gift: подарок, который потребители хотят получить/покупают другим

  • perc: процент потребителей, которые хотят получить этот подарок/покупают другим

  • type: тип подарка, dream – потребители желают получить, real – потребители покупают

  • both: тип подарка, 0 – либо потребители хотят его получить, либо покупают в подарок другим, 1 – хотят получить и покупают сами

Пояснение: в базе данных есть строки

[gift perc type both]
[Money 67 dream 1]
[Money 32 real 1]
[Cooking accessories 18 real 0]

Это означает, что 67% респондентов сказали, что хотели бы получить деньги на Новый год, а 32% респондентов сообщили, что дарят деньги на Новый год. И поэтому both = 1: деньги хотят дарить и хотят получать. 18% респондентов сказали, что они покупают кухонные принадлежности в подарок, а вот получать их никто не мечтает (неизвестно, конечно, насколько “никто”, процент маленький - его просто нет в отчете). Здесь both = 0: подарок дарят, но не очень хотят получать.

Постройте с помощью ggplot2 парную столбиковую диаграмму, такую, чтобы по ней можно было сравнить, сколько процентов людей хотели получить какие-то вещи на Новый год, с тем, сколько процентов людей покупают эти же вещи в подарок на Новый год. Если не совсем понятно, что ожидается, см. примеры так называемых dodged barplots здесь, раздел Barplot with multiple groups.

Указания:

  • Оставьте в базе только те подарки, которые потребители одновременно хотят получить и покупают сами. Для каждого подарка должно быть построено два столбца: сколько процентов респондентов мечтают его получить и сколько процентов респондентов его дарят.

  • Для того, чтобы значения в столбце perc воспринимались как уже готовые частоты (проценты), в geom_bar() нужно выставить параметр stat = "identity". Иначе R будет считать частоты “заново”, то есть определять, сколько в столбце значений 67, 32 и так далее.