始める無料で始める

ボックスプロット

複数の分布を比較する簡単な方法がボックスプロットです。次のコードは、複数のボックスプロットを作り、見やすくコンパクトに可視化するのに役立ちます。

この演習では、all_book_polarity オブジェクトがすでに読み込まれています。データフレームには bookpolarity の2列があり、すべての書籍に対して qdappolarity() 関数を適用した結果が入っています。大きなオブジェクトの先頭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_polaritystr() で確認します。
  • tapply() を使い、all_book_polarity$polarityall_book_polarity$booksummary() を渡します。これにより、4つの書籍それぞれの polarity() スコアの要約統計量が表示されます。一般に、Oz と Huck Finn は Agamemnon や Moby Dick より平均が高いはずです。中央値に特に注目してください。
  • ggplot()all_book_polarity を渡してボックスプロットを作成します。
    • Aesthetics は 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")
コードを編集して実行