Comment sélectionner des colonnes contenant une chaîne spécifique dans R
Vous pouvez utiliser les fonctions suivantes du package dplyr dans R pour sélectionner les colonnes contenant une chaîne spécifique :
Méthode 1 : sélectionner les colonnes contenant une chaîne spécifique
df %>%
select(matches("string1"))
Méthode 2 : sélectionner les colonnes contenant une parmi plusieurs chaînes
df %>%
select(matches("string1|string2|string3"))
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le bloc de données suivant dans R :
#create data frame df <- data.frame(mavs=c(12, 10, 14, 19, 22, 25, 29), cavs=c(22, 41, 14, 15, 15, 19, 22), hornets=c(8, 8, 12, 14, 15, 13, 12), spurs=c(10, 12, 12, 16, 22, 28, 30), nets=c(9, 7, 10, 22, 28, 23, 25)) #view data frame df mavs cavs hornets spurs nets 1 12 22 8 10 9 2 10 41 8 12 7 3 14 14 12 12 10 4 19 15 14 16 22 5 22 15 15 22 28 6 25 19 13 28 23 7 29 22 12 30 25
Exemple 1 : sélectionner des colonnes contenant une chaîne spécifique
Le code suivant montre comment utiliser la fonction matches() pour sélectionner uniquement les colonnes qui contiennent la chaîne « avs » quelque part dans leur nom :
library(dplyr)
#select all columns that contain "avs" in the name
df %>%
select(matches("avs"))
mavs cavs
1 12 22
2 10 41
3 14 14
4 19 15
5 22 15
6 25 19
7 29 22
Seules les colonnes dont le nom contient « avs » sont renvoyées.
Dans ce cas, « mavs » et « cavs » sont les seules colonnes renvoyées.
Exemple 2 : sélectionner des colonnes contenant une chaîne parmi plusieurs
Le code suivant montre comment utiliser la fonction matches() pour sélectionner uniquement les colonnes qui contiennent « avs » ou « ets » quelque part dans leur nom :
library(dplyr)
#select all columns that contain "avs" or "ets" in the name
df %>%
select(matches("avs|ets"))
mavs cavs hornets nets
1 12 22 8 9
2 10 41 8 7
3 14 14 12 10
4 19 15 14 22
5 22 15 15 28
6 25 19 13 23
7 29 22 12 25
Seules les colonnes dont le nom contient « avs » ou « ets » sont renvoyées.
Notez que la barre verticale ( | ) est l’opérateur « OU » dans R.
N’hésitez pas à enchaîner autant de ces opérateurs « OU » que vous le souhaitez pour sélectionner des colonnes contenant l’une des nombreuses chaînes différentes.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de dplyr :
Comment sélectionner des colonnes par nom à l’aide de dplyr
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment utiliser select_if avec plusieurs conditions dans dplyr