Comment utiliser str_split dans R (avec exemples)



La fonction str_split() du package stringr dans R peut être utilisée pour diviser une chaîne en plusieurs morceaux. Cette fonction utilise la syntaxe suivante :

str_split(chaîne, motif)

où:

  • chaîne : vecteur de caractères
  • motif : motif sur lequel diviser

De même, la fonction str_split_fixed() du package stringr peut être utilisée pour diviser une chaîne en un nombre fixe de morceaux. Cette fonction utilise la syntaxe suivante :

str_split_fixed(chaîne, motif, n)

où:

  • chaîne : vecteur de caractères
  • motif : motif sur lequel diviser
  • n : Nombre de pièces à retourner

Ce didacticiel fournit des exemples d’utilisation de chacune de ces fonctions sur le bloc de données suivant :

#create data frame
df <- data.frame(team=c('andy & bob', 'carl & doug', 'eric & frank'),
                 points=c(14, 17, 19))

#view data frame
df

          team points
1   andy & bob     14
2  carl & doug     17
3 eric & frank     19

Exemple 1 : diviser une chaîne à l’aide de str_split()

Le code suivant montre comment diviser la chaîne dans la colonne « équipe » à l’aide de la fonction str_split() :

library(stringr)

#split the string in the team column on " & "
str_split(df$team, " & ")

[[1]]
[1] "andy" "bob" 

[[2]]
[1] "carl" "doug"

[[3]]
[1] "eric"  "frank"

Le résultat est une liste de trois éléments qui montrent les noms des joueurs individuels de chaque équipe.

Exemple 2 : diviser une chaîne à l’aide de str_split_fixed()

Le code suivant montre comment diviser la chaîne de la colonne « équipe » en deux morceaux fixes à l’aide de la fonction str_split_fixed() :

library(stringr)

#split the string in the team column on " & "
str_split_fixed(df$team, " & ", 2)

     [,1]   [,2]   
[1,] "andy" "bob"  
[2,] "carl" "doug" 
[3,] "eric" "frank"

Le résultat est une matrice à deux colonnes et trois lignes.

Une application utile de la fonction str_split_fixed() consiste à ajouter la matrice résultante à la fin du bloc de données. Par exemple:

library(stringr)

#split the string in the team column and append resulting matrix to data frame
df[ , 3:4] <- str_split_fixed(df$team, " & ", 2)

#view data frame
df
          team points   V3    V4
1   andy & bob     14 andy   bob
2  carl & doug     17 carl  doug
3 eric & frank     19 eric frank

La colonne intitulée « V3 » affiche le nom du premier joueur de l’équipe et la colonne intitulée « V4 » affiche le nom du deuxième joueur de l’équipe.

Ressources additionnelles

Comment utiliser str_replace dans R
Comment effectuer une correspondance de chaîne partielle dans R
Comment convertir des chaînes en dates dans R
Comment convertir un caractère en numérique dans R

Ajouter un commentaire

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