web-dev-qa-db-fra.com

Calculer la moyenne par groupe à l'aide du package dplyr

Je pratique le package dplyr en utilisant le célèbre ensemble de données de ggplot2, les données "diamants". J'essaie de calculer le "prix" moyen des diamants regroupés par "taille" variable. Mon code est le suivant.

price.cut <- diamonds %>%
group_by(cut) %>%
summarize(Mean = mean(price, na.rm=TRUE))

Je m'attends à ce que le prix moyen soit groupé par variable "cut". Cependant, je n'ai qu'une seule valeur, la moyenne totale des prix.

>price.cut
   Mean
1 3932.8

Qu'est-ce que je fais mal?

10
Daniel Cho

La raison pourrait être que nous avons accidentellement chargé la bibliothèque plyr. Il y a également un summarise dans ce package

diamonds %>%
    group_by(cut) %>%
    dplyr::summarize(Mean = mean(price, na.rm=TRUE))
# A tibble: 5 x 2
#        cut     Mean
#      <ord>    <dbl>
#1      Fair 4358.758
#2      Good 3928.864
#3 Very Good 3981.760
#4   Premium 4584.258
#5     Ideal 3457.542

Si nous utilisons le plyr::summarise

diamonds %>% 
   group_by(cut) %>%
   plyr::summarize(Mean = mean(price, na.rm=TRUE))
#    Mean
#1 3932.8
27
akrun