Comment extraire des nombres de chaînes dans R (avec exemples)



Vous pouvez utiliser les méthodes suivantes pour extraire des nombres à partir de chaînes dans R :

Méthode 1 : extraire le numéro de la chaîne à l’aide de la base R

as.numeric(gsub("\\D", "", df$my_column))

Méthode 2 : extraire le numéro de la chaîne à l’aide du package readr

library(readr)

parse_number(df$my_column)

Ce tutoriel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard23', 'Guard14', '2Forward',
                            'Guard25', '6Forward', 'Center99'))

#view data frame
df

  team position
1    A  Guard23
2    A  Guard14
3    A 2Forward
4    B  Guard25
5    B 6Forward
6    B Center99

Exemple 1 : extraire le numéro d’une chaîne à l’aide de la base R

Le code suivant montre comment extraire les nombres de chaque chaîne dans la colonne de position du bloc de données :

#extract number from each string in 'position' column
as.numeric(gsub("\\D", "", df$position))

[1] 23 14  2 25  6 99

Notez que les valeurs numériques ont été extraites de chaque chaîne de la colonne de position .

Remarque : La fonction gsub() remplace simplement tous les non-nombres ( \\D ) dans une chaîne par un espace vide. Cela a pour effet d’extraire uniquement les nombres de la chaîne.

Si vous le souhaitez, vous pouvez également stocker ces valeurs numériques dans une nouvelle colonne du bloc de données :

#create new column that contains numbers from each string in 'position' column
df$num <- as.numeric(gsub("\\D", "", df$position))

#view updated data frame
df

  team position num
1    A  Guard23  23
2    A  Guard14  14
3    A 2Forward   2
4    B  Guard25  25
5    B 6Forward   6
6    B Center99  99

Exemple 2 : Extraire le numéro d’une chaîne à l’aide du package Reader

Le code suivant montre comment extraire les nombres de chaque chaîne dans la colonne de position du bloc de données à l’aide de la fonction parse_number() du package readr :

library(readr)

#extract number from each string in 'position' column
parse_number(df$position)

[1] 23 14  2 25  6 99

Notez que les valeurs numériques ont été extraites de chaque chaîne de la colonne de position .

Cela correspond aux résultats de l’utilisation de la fonction gsub() en base R.

Ressources additionnelles

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

Comment sélectionner des colonnes contenant une chaîne spécifique dans R
Comment supprimer des caractères d’une chaîne dans R
Comment trouver l’emplacement du caractère dans une chaîne dans R

Ajouter un commentaire

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