Ящик з вусами (box plot)
Зручний спосіб порівняти кілька розподілів — це «ящик з вусами» (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(). Очікуйте, що Oz і Huck Finn матимуть вищі середні значення, ніж Agamemnon або Moby Dick. Зверніть особливу увагу на медіану. - Створіть «ящик з вусами» за допомогою
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")