Comment utiliser la fonction n() dans R (avec exemples)



Vous pouvez utiliser la fonction n() du package dplyr dans R pour compter le nombre d’observations dans un groupe.

Voici trois manières courantes d’utiliser cette fonction dans la pratique :

Méthode 1 : utilisez n() pour compter les observations par groupe

df %>%
  group_by(group_variable) %>%
  summarise(count = n())

Méthode 2 : utilisez n() pour ajouter une colonne affichant les observations par groupe

df %>%
  group_by(group_variable) %>%
  mutate(count = n())

Méthode 3 : utilisez n() pour filtrer en fonction des observations par groupe

df %>%
  group_by(group_variable) %>%
  filter(n() > 15)

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R qui contient des informations sur divers joueurs de basket-ball :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 points=c(22, 25, 25, 20, 29, 13),
                 assists=c(10, 12, 9, 4, 11, 10),
                 rebounds=c(9, 8, 5, 10, 14, 12))

#view data frame
df

  team points assists rebounds
1    A     22      10        9
2    A     25      12        8
3    A     25       9        5
4    B     20       4       10
5    B     29      11       14
6    C     13      10       12

Exemple 1 : utilisez n() pour compter les observations par groupe

Le code suivant montre comment utiliser la fonction n() avec la fonction summarise() pour compter le nombre d’observations par équipe :

library(dplyr)

#count number of observations by team
df %>%
  group_by(team) %>%
  summarise(count = n())

# A tibble: 3 x 2
  team  count
   
1 A         3
2 B         2
3 C         1

À partir du résultat, nous pouvons voir :

  • L’équipe A apparaît 3 fois
  • L’équipe B apparaît 2 fois
  • L’équipe C apparaît 1 fois

Exemple 2 : utilisez n() pour ajouter une colonne qui affiche les observations par groupe

Le code suivant montre comment utiliser la fonction n() avec la fonction mutate() pour ajouter une colonne au cadre de date contenant le nombre d’observations par équipe :

library(dplyr)

#add new column that shows number of observations by team
df %>%
  group_by(team) %>%
  mutate(count = n())

# A tibble: 6 x 5
# Groups:   team [3]
  team  points assists rebounds count
            
1 A         22      10        9     3
2 A         25      12        8     3
3 A         25       9        5     3
4 B         20       4       10     2
5 B         29      11       14     2
6 C         13      10       12     1

La nouvelle colonne appelée count contient le nombre d’équipes pour chaque ligne du bloc de données.

Exemple 3 : utilisez n() pour filtrer en fonction des observations par groupe

Le code suivant montre comment utiliser la fonction n() avec la fonction filter() pour filtrer le bloc de données afin d’afficher uniquement les lignes où l’équipe apparaît plus d’une fois :

library(dplyr)

#filter rows where team count is greater than 1
df %>%
  group_by(team) %>%
  filter(n() > 1)

# A tibble: 5 x 4
# Groups:   team [2]
  team  points assists rebounds
           
1 A         22      10        9
2 A         25      12        8
3 A         25       9        5
4 B         20       4       10
5 B         29      11       14

Notez que le bloc de données résultant ne contient que les lignes où l’équipe est « A » ou « B », car ce sont les seules équipes dont le nombre est supérieur à un.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction across() dans dplyr
Comment utiliser la fonction relocate() dans dplyr
Comment utiliser la fonction slice() dans dplyr

Ajouter un commentaire

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