Comment créer rapidement des tableaux croisés dynamiques dans R



Dans Excel, les tableaux croisés dynamiques offrent un moyen simple de regrouper et de résumer les données.

Par exemple, si nous disposons de l’ensemble de données suivant dans Excel, nous pouvons utiliser un tableau croisé dynamique pour résumer rapidement les ventes totales par région :

Cela nous dit :

  • La région A a réalisé 51 ventes totales
  • La région B a réalisé 85 ventes totales
  • La région C a réalisé 140 ventes totales

Ou nous pourrions résumer par une autre mesure telle que les ventes moyennes par région :

Il s’avère que nous pouvons rapidement créer des tableaux croisés dynamiques similaires dans R en utilisant les fonctions group_by() et summary() du package dplyr .

Ce didacticiel fournit plusieurs exemples expliquant comment procéder.

Exemple : créer des tableaux croisés dynamiques dans R

Tout d’abord, créons le même ensemble de données dans R que celui que nous avons utilisé dans les exemples précédents à partir d’Excel :

#create data frame
df <- data.frame(region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                 device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'),
                 sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32))

#view data frame
df

   region device sales
1       A      X    12
2       A      X    18
3       A      Y    21
4       B      X    22
5       B      Y    34
6       B      Y    29
7       C      X    38
8       C      X    36
9       C      Y    34
10      C      Y    32

Ensuite, chargeons le package dplyr et utilisons les fonctions group_by() et summary() pour regrouper par région et trouver la somme des ventes par région :

library(dplyr)

#find sum of sales by region
df %>%
  group_by(region) %>% 
  summarize(sum_sales = sum(sales))

# A tibble: 3 x 2
  region sum_sales
        
1 A             51
2 B             85
3 C            140

Nous pouvons voir que ces nombres correspondent aux nombres affichés dans l’exemple d’introduction Excel.

On peut également calculer les ventes moyennes par région :

#find average sales by region
df %>%
  group_by(region) %>% 
  summarize(mean_sales = mean(sales))

# A tibble: 3 x 2
  region  mean_sales
        
1 A             17  
2 B             28.3
3 C             35  

Encore une fois, ces chiffres correspondent aux chiffres affichés dans l’exemple Excel précédent.

Notez que nous pouvons également regrouper selon plusieurs variables. Par exemple, nous pourrions trouver la somme des ventes regroupées par région et type d’appareil :

#find sum of sales by region and device type
df %>%
  group_by(region, device) %>% 
  summarize(sum_sales = sum(sales))

# A tibble: 6 x 3
# Groups:   region [3]
  region device sum_sales
          
1 A      X             30
2 A      Y             21
3 B      X             22
4 B      Y             63
5 C      X             74
6 C      Y             66  

Ressources additionnelles

Comment effectuer une RECHERCHEV (similaire à Excel) dans R
Le guide complet : Comment regrouper et résumer des données dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *