Comment additionner sur plusieurs colonnes à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour additionner les valeurs de plusieurs colonnes d’un bloc de données à l’aide de dplyr :

Méthode 1 : somme sur toutes les colonnes

df %>%
  mutate(sum = rowSums(., na.rm=TRUE))

Méthode 2 : somme sur toutes les colonnes numériques

df %>%
  mutate(sum = rowSums(across(where(is.numeric)), na.rm=TRUE))

Méthode 3 : somme sur des colonnes spécifiques

df %>%
  mutate(sum = rowSums(across(c(col1, col2))))

Les exemples suivants montrent comment utiliser chaque méthode avec le bloc de données suivant qui contient des informations sur les points marqués par différents joueurs de basket-ball lors de différents matchs :

#create data frame
df <- data.frame(game1=c(22, 25, 29, 13, 22, 30),
                 game2=c(12, 10, 6, 6, 8, 11),
                 game3=c(NA, 15, 15, 18, 22, 13))

#view data frame
df

  game1 game2 game3
1    22    12    NA
2    25    10    15
3    29     6    15
4    13     6    18
5    22     8    22
6    30    11    13

Exemple 1 : somme sur toutes les colonnes

Le code suivant montre comment calculer la somme des valeurs de toutes les colonnes du bloc de données :

library(dplyr)

#sum values across all columns
df %>%
  mutate(total_points = rowSums(., na.rm=TRUE))

  game1 game2 game3 total_points
1    22    12    NA           34
2    25    10    15           50
3    29     6    15           50
4    13     6    18           37
5    22     8    22           52
6    30    11    13           54

Exemple 2 : somme sur toutes les colonnes numériques

Le code suivant montre comment calculer la somme des valeurs de toutes les colonnes numériques du bloc de données :

library(dplyr) 

#sum values across all numeric columns
df %>%
  mutate(total_points = rowSums(across(where(is.numeric)), na.rm=TRUE))

  game1 game2 game3 total_points
1    22    12    NA           34
2    25    10    15           50
3    29     6    15           50
4    13     6    18           37
5    22     8    22           52
6    30    11    13           54

Exemple 3 : somme sur des colonnes spécifiques

Le code suivant montre comment calculer la somme des valeurs dans les colonnes game1 et game2 uniquement :

library(dplyr) 

#sum values across game1 and game2 only
df %>%
  mutate(first2_sum = rowSums(across(c(game1, game2))))

  game1 game2 game3 first2_sum
1    22    12    NA         34
2    25    10    15         35
3    29     6    15         35
4    13     6    18         19
5    22     8    22         30
6    30    11    13         41

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de dplyr :

Comment supprimer des lignes à l’aide de dplyr
Comment organiser les lignes à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr

Ajouter un commentaire

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