Comment sous-ensembler une trame de données dans R selon plusieurs conditions
Vous pouvez utiliser les méthodes suivantes pour sous-définir un bloc de données selon plusieurs conditions dans R :
Méthode 1 : trame de données de sous-ensemble utilisant la logique « OU »
df_sub <- subset(df, team == 'A' | points < 20)
Cet exemple particulier sous-ensemblera le bloc de données pour les lignes où la colonne d’équipe est égale à « A » ou la colonne de points est inférieure à 20.
Méthode 2 : trame de données de sous-ensemble utilisant la logique « ET »
df_sub <- subset(df, team == 'A' & points < 20)
Cet exemple particulier sous-ensemblera le bloc de données pour les lignes où la colonne d’équipe est égale à « A » et la colonne de points est inférieure à 20.
Ce tutoriel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Forward'),
points=c(22, 25, 19, 22, 12, 35))
#view data frame
df
team position points
1 A Guard 22
2 A Guard 25
3 A Forward 19
4 B Guard 22
5 B Forward 12
6 B Forward 35
Exemple 1 : trame de données de sous-ensemble utilisant la logique « OU »
Le code suivant montre comment sous-ensembler le bloc de données pour les lignes où la colonne d’équipe est égale à « A » ou la colonne de points est inférieure à 20 :
#subset data frame where team is 'A' or points is less than 20 df_sub <- subset(df, team == 'A' | points < 20) #view subset df_sub team position points 1 A Guard 22 2 A Guard 25 3 A Forward 19 5 B Forward 12
Chacune des lignes du sous-ensemble a soit une valeur de « A » dans la colonne de l’équipe , soit une valeur dans la colonne des points inférieure à 20.
Remarque : Le | le symbole représente « OU » dans R.
Dans cet exemple, nous n’avons inclus qu’un seul symbole « OU » dans la fonction subset() mais nous pourrions en inclure autant que nous le souhaitons pour sous-ensembler en fonction d’encore plus de conditions.
Exemple 2 : trame de données de sous-ensemble utilisant la logique « ET »
Le code suivant montre comment sous-ensembler le bloc de données pour les lignes où la colonne d’équipe est égale à « A » et la colonne de points est inférieure à 20 :
#subset data frame where team is 'A' and points is less than 20 df_sub <- subset(df, team == 'A' & points < 20) #view subset df_sub team position points 3 A Forward 19
Notez que le sous-ensemble résultant ne contient qu’une seule ligne.
En effet, une seule ligne a une valeur « A » dans la colonne des équipes et une valeur dans la colonne des points inférieure à 20.
Remarque : Le symbole & représente « ET » dans R.
Dans cet exemple, nous n’avons inclus qu’un seul symbole « ET » dans la fonction subset() mais nous pourrions en inclure autant que nous le souhaitons pour sous-ensembler en fonction d’encore plus de conditions.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment sélectionner des lignes uniques dans un bloc de données dans R
Comment sélectionner des lignes avec des valeurs NA dans R
Comment sélectionner des lignes en fonction des valeurs du vecteur dans R