R : supprimer les colonnes si le nom contient une chaîne spécifique



Vous pouvez utiliser les méthodes suivantes pour supprimer des colonnes d’un bloc de données dans R dont le nom contient des chaînes spécifiques :

Méthode 1 : supprimer les colonnes si le nom contient une chaîne spécifique

library(dplyr)

df_new <- df %>% select(-contains('this_string'))

Méthode 2 : supprimer les colonnes si le nom contient l’une des plusieurs chaînes spécifiques

library(dplyr)

df_new <- df %>% select(-contains(c('string1', 'string2', 'string3')))

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(team_name=c('A', 'B', 'C', 'D', 'E', 'F'),
                 team_location=c('AU', 'AU', 'EU', 'EU', 'AU', 'EU'),
                 player_name=c('Andy', 'Bob', 'Chad', 'Dan', 'Ed', 'Fran'),
                 points=c(22, 29, 35, 30, 18, 12))

#view data frame
df

  team_name team_location player_name points
1         A            AU        Andy     22
2         B            AU         Bob     29
3         C            EU        Chad     35
4         D            EU         Dan     30
5         E            AU          Ed     18
6         F            EU        Fran     12

Exemple 1 : supprimer des colonnes si le nom contient une chaîne spécifique

Nous pouvons utiliser la syntaxe suivante pour supprimer toutes les colonnes du bloc de données qui contiennent « équipe » n’importe où dans le nom de la colonne :

library(dplyr)

#drop columns that contain 'team'
df_new <- df %>% select(-contains('team'))

#view new data frame
df_new

  player_name points
1        Andy     22
2         Bob     29
3        Chad     35
4         Dan     30
5          Ed     18
6        Fran     12

Notez que les deux colonnes contenant « équipe » dans le nom ont été supprimées du bloc de données.

Exemple 2 : supprimer des colonnes si le nom contient l’une des plusieurs chaînes spécifiques

Nous pouvons utiliser la syntaxe suivante pour supprimer toutes les colonnes du bloc de données qui contiennent « joueur » ou « points » n’importe où dans le nom de la colonne :

#drop columns whose name contains 'player' or 'points'
df_new <- df %>% select(-contains(c('player', 'points')))

#view new data frame
df

  team_name team_location
1         A            AU
2         B            AU
3         C            EU
4         D            EU
5         E            AU
6         F            EU

Notez que les deux colonnes contenant « joueur » ou « points » dans le nom ont été supprimées du bloc de données.

Remarque : Vous pouvez trouver la documentation complète de la fonction dplyr select() ici .

Ressources additionnelles

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

Comment supprimer des colonnes par nom dans R
Comment conserver certaines colonnes dans R
Comment renommer les colonnes du bloc de données dans R

Ajouter un commentaire

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