Boîte à moustaches
Une manière simple de comparer plusieurs distributions est d'utiliser une boîte à moustaches (box plot). Le code suivant vous aidera à construire plusieurs boîtes afin d'obtenir un visuel compact.
Dans cet exercice, l'objet all_book_polarity est déjà chargé. Le data frame contient deux colonnes, book et polarity. Il regroupe tous les livres avec la fonction polarity() de qdap appliquée. Voici les 3 premières lignes de ce grand objet.
| book | polarity | |
|---|---|---|
| 14 | huck | 0.2773501 |
| 22 | huck | 0.2581989 |
| 26 | huck | -0.5773503 |
Cet exercice présente tapply(), qui permet d'appliquer des fonctions sur un tableau irrégulier. Vous fournissez un vecteur de valeurs puis un vecteur de facteurs. Pour chaque combinaison facteur/valeur, le troisième paramètre, une fonction comme min(), est appliquée. Par exemple, voici du code utilisant tapply() sur deux vecteurs.
f1 <- as.factor(c("Group1", "Group2", "Group1", "Group2"))
stat1 <- c(1, 2, 1, 2)
tapply(stat1, f1, sum)
Le résultat est un tableau où Group1 vaut 2 (1+1) et Group2 vaut 4 (2+2).
Cet exercice fait partie du cours
<cours>Analyse de sentiments en R</cours>Instructions de l’exercice
- Comme il est déjà chargé, examinez
all_book_polarityavecstr(). - En utilisant
tapply(), passezall_book_polarity$polarity,all_book_polarity$booket la fonctionsummary(). Cela affichera les statistiques récapitulatives des 4 livres en termes de scores depolarity(). Vous devriez voir qu'Oz et Huck Finn ont des moyennes plus élevées qu'Agamemnon ou Moby Dick. Portez une attention particulière à la médiane. - Créez une boîte à moustaches avec
ggplot()en passantall_book_polarity.- Les aesthetics doivent être
aes(x = book, y = polarity). - En utilisant un
+, ajoutezgeom_boxplot()aveccol = "darkred". Observez bien la ligne sombre au centre de chaque boîte, qui représente la médiane. - Ajoutez ensuite une autre couche appelée
geom_jitter()pour ajouter des points correspondant à chaque mot.
- Les aesthetics doivent être
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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")