ボックスプロット
複数の分布を比較する簡単な方法がボックスプロットです。次のコードは、複数のボックスプロットを作り、見やすくコンパクトに可視化するのに役立ちます。
この演習では、all_book_polarity オブジェクトがすでに読み込まれています。データフレームには book と polarity の2列があり、すべての書籍に対して qdap の polarity() 関数を適用した結果が入っています。大きなオブジェクトの先頭3行は次のとおりです。
| book | polarity | |
|---|---|---|
| 14 | huck | 0.2773501 |
| 22 | huck | 0.2581989 |
| 26 | huck | -0.5773503 |
この演習では、まばらな配列に関数を適用できる tapply() を紹介します。最初に値のベクトル、次に因子のベクトルを入力します。各因子と値の組み合わせに対して、3つ目の引数で渡した関数(たとえば min())が適用されます。たとえば、2つのベクトルに対して 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で学ぶSentiment Analysis
演習の手順
- すでに読み込まれている
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を渡してボックスプロットを作成します。- Aesthetics は
aes(x = book, y = polarity)とします。 +でgeom_boxplot()を追加し、col = "darkred"を指定します。各ボックス内の太い線(中央値)に注目してください。- 次に、各単語の点を追加するために、
geom_jitter()をレイヤーとして追加します。
- Aesthetics は
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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")