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

Ajouter un commentaire

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