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