R : Comment sélectionner des lignes dans un bloc de données en fonction des valeurs du vecteur



Vous pouvez utiliser l’une des méthodes suivantes pour sélectionner des lignes d’un bloc de données dans R en fonction des valeurs d’un vecteur :

Méthode 1 : utiliser Base R

new_df <- df[df$column_name %in% values_vector, ]

Méthode 2 : utiliser le package dplyr

library(dplyr)

new_df <- df %>% filter(column_name %in% values_vector)

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(division=c('West', 'West', 'East', 'East', 'North'),
                 points=c(120, 100, 104, 98, 105),
                 assists=c(30, 35, 64, 28, 23))

#view data frame
df

  division points assists
1     West    120      30
2     West    100      35
3     East    104      64
4     East     98      28
5    North    105      23

Exemple 1 : utiliser Base R pour sélectionner des lignes en fonction des valeurs du vecteur

Nous pouvons utiliser le code suivant pour sélectionner uniquement les lignes du bloc de données d’origine où la valeur dans la colonne de division est égale à « Ouest » ou « Nord ».

#define values of interest
my_values <- c('West', 'North')

#select rows that contain 'West' or 'North' in division column
new_df <- df[df$division %in% my_values, ]

#view results
new_df

  division points assists
1     West    120      30
2     West    100      35
5    North    105      23

Le nouveau bloc de données contient uniquement les lignes dont la valeur dans la colonne de division est égale à « Ouest » ou « Nord ».

Exemple 2 : utilisez dplyr pour sélectionner des lignes en fonction des valeurs du vecteur

Nous pouvons également utiliser la fonction filter() du package dplyr dans R pour sélectionner uniquement les lignes du bloc de données d’origine où la valeur dans la colonne de division est égale à « Ouest » ou « Nord ».

library(dplyr)

#define values of interest
my_values <- c('West', 'North')

#select rows that contain 'West' or 'North' in division column
new_df <- df %>% filter(division %in% my_values)

#view results
new_df

  division points assists
1     West    120      30
2     West    100      35
3    North    105      23

Le nouveau bloc de données contient uniquement les lignes dont la valeur dans la colonne de division est égale à « Ouest » ou « Nord ».

Remarque : Les méthodes de base R et dplyr produisent les mêmes résultats. Cependant, la méthode dplyr aura tendance à être plus rapide lorsque vous travaillez avec des trames de données extrêmement volumineuses.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment sélectionner des lignes aléatoires dans R à l’aide de dplyr
Comment sélectionner des lignes par condition dans R
Comment sélectionner les lignes où la valeur apparaît dans n’importe quelle colonne de R

Ajouter un commentaire

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