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