Comment sélectionner des colonnes qui ne commencent pas par une chaîne dans dplyr



Vous pouvez utiliser les fonctions suivantes du package dplyr dans R pour sélectionner les colonnes qui ne commencent pas par une chaîne spécifique :

Méthode 1 : sélectionner les colonnes qui ne commencent pas par une chaîne spécifique

df %>%
  select(-starts_with("string1"))

Méthode 2 : sélectionner les colonnes qui ne commencent pas par l’une des plusieurs chaînes

df %>%
  select(-starts_with(c("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(store1_sales=c(12, 10, 14, 19, 22, 25, 29),
                 store1_returns=c(3, 3, 2, 4, 3, 2, 1),
                 store2_sales=c(8, 8, 12, 14, 15, 13, 12),
                 store2_returns=c(1, 2, 2, 1, 2, 1, 3),
                 promotions=c(0, 1, 1, 1, 0, 0, 1))

#view data frame
df

  store1_sales store1_returns store2_sales store2_returns promotions
1           12              3            8              1          0
2           10              3            8              2          1
3           14              2           12              2          1
4           19              4           14              1          1
5           22              3           15              2          0
6           25              2           13              1          0
7           29              1           12              3          1

Exemple 1 : sélectionner des colonnes qui ne commencent pas par une chaîne spécifique

Le code suivant montre comment utiliser la fonction -starts_with() pour sélectionner uniquement les colonnes qui ne commencent pas par « store1 » dans le bloc de données :

library(dplyr)

#select all columns that do not start with "store1"
df %>%
  select(-starts_with("store1"))

  store2_sales store2_returns promotions
1            8              1          0
2            8              2          1
3           12              2          1
4           14              1          1
5           15              2          0
6           13              1          0
7           12              3          1

Notez que les deux colonnes commençant par « store1 » ne sont pas renvoyées.

Exemple 2 : sélectionner des colonnes qui ne commencent pas par une chaîne parmi plusieurs

Le code suivant montre comment utiliser la fonction -starts_with() pour sélectionner uniquement les colonnes qui ne commencent pas par « store1 » ou « prom » dans le bloc de données :

library(dplyr)

#select all columns that do not start with "store1" or "prom"
df %>%
  select(-starts_with(c("store1", "prom")))

  store2_sales store2_returns
1            8              1
2            8              2
3           12              2
4           14              1
5           15              2
6           13              1
7           12              3

Notez que les colonnes commençant par « store1 » ou « prom » ne sont pas renvoyées.

Remarque : Par défaut, la fonction start_with() n’est pas sensible à la casse. Pour rendre la fonction sensible à la casse, utilisez l’argument ignore.case=FALSE dans la fonction.

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 *