R : Comment compter les valeurs dans une colonne avec condition
Vous pouvez utiliser les méthodes suivantes pour compter le nombre de valeurs dans une colonne d’un bloc de données dans R avec une condition spécifique :
Méthode 1 : compter les valeurs dans une colonne avec condition
nrow(df[df$column1 == 'value1', ])
Méthode 2 : compter les valeurs dans plusieurs colonnes avec des conditions
nrow(df[df$column1 == 'value1' & df$column2 == 'value2', ])
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 12, 3, 14, 22, 15, 17, 17))
#view data frame
df
team position points
1 A G 10
2 A G 12
3 A F 3
4 A F 14
5 B G 22
6 B G 15
7 B F 17
8 B F 17
Exemple 1 : Compter les valeurs dans une colonne avec condition
Le code suivant montre comment compter le nombre de valeurs dans la colonne équipe où la valeur est égale à ‘ A ‘ :
#count number of rows where team is equal to 'B'
nrow(df[df$team == 'B', ])
[1] 4
Nous pouvons voir qu’il y a 4 valeurs dans la colonne équipe où la valeur est égale à « B ».
Exemple 2 : Compter les valeurs dans plusieurs colonnes avec des conditions
Le code suivant montre comment compter le nombre de lignes dans le bloc de données où la colonne d’équipe est égale à « B » et la colonne de position est égale à « F » :
#count number of rows where team is equal to 'B' and position is equal to 'F'
nrow(df[df$team == 'B' & df$position == 'F', ])
[1] 2
Nous pouvons voir qu’il y a 2 lignes dans le bloc de données qui remplissent ces deux conditions.
Nous pouvons utiliser une syntaxe similaire pour compter le nombre de lignes qui remplissent le nombre de conditions souhaitées.
Par exemple, le code suivant montre comment compter le nombre de lignes qui remplissent trois conditions :
- l’équipe est égale à ‘B’
- la position est égale à ‘G’
- les points sont supérieurs à 20
#count rows where team is 'B' and position is 'G' and points > 20 nrow(df[df$team == 'B' & df$position == 'G' & df$points > 20, ]) [1] 1
Nous pouvons voir qu’une seule ligne du bloc de données remplit ces trois conditions.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment compter le nombre de lignes dans R
Comment sélectionner des lignes uniques dans un bloc de données dans R