Nombre d'observations en R
Dans la vie réelle, nous traitons de grands ensembles de données. Celles-ci peuvent dépasser des centaines d’observations, et il peut parfois être nécessaire d’extraire certaines données spécifiques de l’ensemble.
Pour de telles situations, nous disposons de quelques méthodes dans R, qui peuvent aider à compter le nombre total d’observations de ces données filtrées. Nous travaillerons sur le DataFrame suivant dans ce tutoriel.
df <- data.frame( gender = c("M","F","M","M"),
age = c(18,19,14,22),
stream = c("Arts","Science","Arts","Commerce"))
print(df)
Production :
gender age stream
1 M 18 Arts
2 F 19 Science
3 M 14 Arts
4 M 22 Commerce
La première méthode implique les fonctions with()
et sum()
.
La fonction with()
renvoie un vecteur logique basé sur une expression après l’avoir appliqué à l’ensemble des données, et la fonction sum()
renvoie la somme de toutes les observations True
.
L’extrait de code suivant montre comment cela fonctionne.
df <- data.frame( gender = c("M","F","M","M"),
age = c(18,19,14,22),
stream = c("Arts","Science","Arts","Commerce"))
sum(with(df,gender == "M"))
[1] 3
Nous pouvons également ajouter plusieurs expressions en utilisant l’opérateur &
.
sum(with(df,gender == "M" & stream == "Commerce"))
[1] 1
Une autre méthode implique l’utilisation de la fonction nrow()
, qui renvoie le nombre de lignes dans un ensemble de données. Nous pouvons filtrer les observations requises dans le DataFrame, comme indiqué ci-dessous :
nrow(df[df$gender == "M",])
[1] 3
Là encore, nous pouvons ajouter de multiples expressions comme nous le faisons dans la fonction with()
.
nrow(df[df$gender == "M" & df$stream == "Commerce",])
[1] 1
Nous pouvons également utiliser la fonction filer()
fournie dans la bibliothèque dplyr
. Cela renvoie un sous-ensemble de données basé sur une condition. L’exemple suivant explique comment :
library(dplyr)
nrow(filter(df,gender == "M"))
[1] 3
nrow(filter(df,gender == "M" & stream == "Commerce"))
[1] 1
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn