開始使用免費開始

盒狀圖

用盒狀圖比較多個分佈相當方便。下面的程式碼會幫你建立多個盒狀圖,做出精簡的視覺化。

在本練習中,物件 all_book_polarity 已經載入。這個資料框有兩個欄位:bookpolarity。它包含將 qdappolarity() 函式套用到所有書本後的結果。以下是這個大型物件的前 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$polarityall_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")
編輯並執行程式碼