Je trace une variable catégorielle et au lieu d'afficher les nombres pour chaque valeur de catégorie.
Je cherche un moyen d' ggplot
afficher le pourcentage de valeurs dans cette catégorie. Bien sûr, il est possible de créer une autre variable avec le pourcentage calculé et de tracer celle-là, mais je dois le faire plusieurs dizaines de fois et j'espère y parvenir en une seule commande.
J'expérimentais quelque chose comme
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
mais je dois l'utiliser de manière incorrecte, car j'ai des erreurs.
Pour reproduire facilement la configuration, voici un exemple simplifié:
mydata <- c ("aa", "bb", NULL, "bb", "cc", "aa", "aa", "aa", "ee", NULL, "cc");
mydataf <- factor(mydata);
qplot (mydataf); #this shows the count, I'm looking to see % displayed.
Dans le cas réel, j'utiliserai probablement à la ggplot
place de qplot
, mais la bonne façon d'utiliser stat_bin m'échappe toujours.
J'ai également essayé ces quatre approches:
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
mais tous les 4 donnent:
Error: ggplot2 doesn't know how to deal with data of class factor
La même erreur apparaît pour le cas simple de
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
il s'agit donc clairement de la façon dont ggplot
interagit avec un seul vecteur. Je me gratte la tête, googler cette erreur donne un seul résultat .