Comment ajouter une ligne totale à un bloc de données dans R



Vous pouvez utiliser les méthodes suivantes pour ajouter une ligne « total » au bas d’un bloc de données dans R :

Méthode 1 : utiliser Base R

rbind(df, data.frame(team='Total', t(colSums(df[, -1]))))

Méthode 2 : utiliser dplyr

library(dplyr)

df %>%
  bind_rows(summarise(., across(where(is.numeric), sum),
                         across(where(is.character), ~'Total')))

L’exemple suivant montre comment utiliser chaque méthode en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F'),
                 assists=c(5, 7, 7, 9, 12, 9),
                 rebounds=c(11, 8, 10, 6, 6, 5),
                 blocks=c(6, 6, 3, 2, 7, 9))

#view data frame
df

  team assists rebounds blocks
1    A       5       11      6
2    B       7        8      6
3    C       7       10      3
4    D       9        6      2
5    E      12        6      7
6    F       9        5      9

Exemple 1 : ajouter une ligne totale en utilisant la base R

Nous pouvons utiliser les fonctions rbind et colSums de la base R pour ajouter une ligne totale au bas du bloc de données :

#add total row to data frame
df_new <- rbind(df, data.frame(team='Total', t(colSums(df[, -1]))))

#view new data frame
df_new

   team assists rebounds blocks
1     A       5       11      6
2     B       7        8      6
3     C       7       10      3
4     D       9        6      2
5     E      12        6      7
6     F       9        5      9
7 Total      49       46     33

Notez qu’une ligne a été ajoutée au bas du bloc de données qui affiche la somme des valeurs de chaque colonne.

Exemple 2 : ajouter une ligne totale à l’aide de dplyr

Le code suivant montre comment utiliser les fonctions du package dplyr dans R pour ajouter une ligne totale au bas du bloc de données :

library(dplyr)

#add total row to data frame
df_new <- df %>%
            bind_rows(summarise(., across(where(is.numeric), sum),
                                   across(where(is.character), ~'Total')))

#view new data frame
df_new

   team assists rebounds blocks
1     A       5       11      6
2     B       7        8      6
3     C       7       10      3
4     D       9        6      2
5     E      12        6      7
6     F       9        5      9
7 Total      49       46     33

Notez qu’une ligne a été ajoutée au bas du bloc de données qui affiche la somme des valeurs de chaque colonne.

Notez également que cette méthode produit les mêmes résultats que la méthode de base R.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment utiliser rbind dans R
Comment supprimer des lignes dans R
Comment calculer la différence entre les lignes dans R

Ajouter un commentaire

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