盒狀圖
用盒狀圖比較多個分佈相當方便。下面的程式碼會幫你建立多個盒狀圖,做出精簡的視覺化。
在本練習中,物件 all_book_polarity 已經載入。這個資料框有兩個欄位:book 和 polarity。它包含將 qdap 的 polarity() 函式套用到所有書本後的結果。以下是這個大型物件的前 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 情感分析
練習說明
- 既然已經載入,先用
str()檢視all_book_polarity。 - 使用
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")