НачатьНачать бесплатно

Ящичная диаграмма

Удобный способ сравнить несколько распределений — ящичная диаграмма (box plot). С помощью этого кода вы построите несколько таких диаграмм в компактном визуальном представлении.

В этом упражнении объект all_book_polarity уже загружен. Фрейм данных содержит два столбца: book и polarity. В него входят все книги, к которым применена функция polarity() из пакета qdap. Ниже приведены первые 3 строки объекта.

book polarity
14 huck 0.2773501
22 huck 0.2581989
26 huck -0.5773503

В этом упражнении вы познакомитесь с функцией tapply(), которая позволяет применять функции к неравномерно распределённым массивам. Вы передаёте вектор значений и вектор факторов — для каждой комбинации «фактор–значение» применяется третий параметр, например функция min(). Вот пример использования tapply() с двумя векторами:

f1 <- as.factor(c("Group1", "Group2", "Group1", "Group2"))
stat1 <- c(1, 2, 1, 2)
tapply(stat1, f1, sum)

Результат — массив, в котором Group1 имеет значение 2 (1+1), а Group2 — значение 4 (2+2).

Это упражнение является частью курса

Анализ тональности в R

Посмотреть курс

Инструкции к упражнению

  • Поскольку объект уже загружен, изучите структуру all_book_polarity с помощью str().
  • С помощью tapply() передайте all_book_polarity$polarity, all_book_polarity$book и функцию summary(). Это выведет сводную статистику по 4 книгам в разрезе оценок polarity(). Ожидается, что у «Волшебника страны Оз» и «Приключений Гекльберри Финна» средние значения будут выше, чем у «Агамемнона» или «Моби Дика». Обратите особое внимание на медиану.
  • Постройте ящичную диаграмму с помощью ggplot(), передав all_book_polarity.
    • В качестве эстетики укажите aes(x = book, y = polarity).
    • С помощью + добавьте geom_boxplot() с параметром col = "darkred". Обратите особое внимание на тёмную линию в каждом прямоугольнике — она обозначает медиану.
    • Затем добавьте ещё один слой — geom_jitter() — чтобы отобразить точки для каждого слова.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Examine
___

# Summary by document
___

# Box plot
ggplot(___, aes(x = ___, y = ___)) +
  ___(fill = c("#bada55", "#F00B42", "#F001ED", "#BA6E15"), col = "___") +
  ___(position = position_jitter(width = 0.1, height = 0), alpha = 0.02) +
  theme_gdocs() +
  ggtitle("Book Polarity")
Редактировать и запускать код