Comment compter des valeurs distinctes à l’aide de dplyr (avec exemples)



Vous pouvez utiliser l’une des méthodes suivantes pour compter le nombre de valeurs distinctes dans une trame de données R à l’aide de la fonction n_distinct() de dplyr :

Méthode 1 : compter les valeurs distinctes dans une colonne

n_distinct(df$column_name)

Méthode 2 : compter les valeurs distinctes dans toutes les colonnes

sapply(df, function(x) n_distinct(x))

Méthode 3 : compter les valeurs distinctes par groupe

df %>%
  group_by(grouping_column) %>%
  summarize(count_distinct = n_distinct(values_column))

Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le bloc de données suivant :

library(dplyr)

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(6, 6, 8, 10, 9, 9, 12, 12),
                 assists=c(3, 6, 4, 2, 4, 5, 5, 9))

#view data frame
df

  team points assists
1    A      6       3
2    A      6       6
3    A      8       4
4    A     10       2
5    B      9       4
6    B      9       5
7    B     12       5
8    B     12       9

Méthode 1 : compter les valeurs distinctes dans une colonne

Le code suivant montre comment utiliser n_distinct() pour compter le nombre de valeurs distinctes dans la colonne ‘team’ :

#count distinct values in 'team' column
n_distinct(df$team)

[1] 2

Il y a 2 valeurs distinctes dans la colonne ‘équipe’.

Méthode 2 : compter les valeurs distinctes dans toutes les colonnes

Le code suivant montre comment utiliser les fonctions sapply() et n_distinct() pour compter le nombre de valeurs distinctes dans chaque colonne du bloc de données :

#count distinct values in every column
sapply(df, function(x) n_distinct(x))

   team  points assists 
      2       5       6

À partir du résultat, nous pouvons voir :

  • Il y a 2 valeurs distinctes dans la colonne ‘équipe’
  • Il y a 5 valeurs distinctes dans la colonne « points »
  • Il y a 6 valeurs distinctes dans la colonne « aides »

Méthode 3 : compter les valeurs distinctes par groupe

Le code suivant montre comment utiliser la fonction n_distinct() pour compter le nombre de valeurs distinctes par groupe :

#count distinct 'points' values by 'team'
df %>%
  group_by(team) %>%
  summarize(distinct_points = n_distinct(points))

# A tibble: 2 x 2
  team  distinct_points 
1 A                   3
2 B                   2

À partir du résultat, nous pouvons voir :

  • Il existe 3 valeurs de points distinctes pour l’équipe A.
  • Il existe 2 valeurs de points distinctes pour l’équipe B.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes à l’aide de dplyr :

Comment recoder des valeurs à l’aide de dplyr
Comment remplacer NA par Zero dans dplyr
Comment classer les variables par groupe à l’aide de dplyr
Comment sélectionner la première ligne par groupe à l’aide de dplyr

Ajouter un commentaire

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