Diviser la colonne en deux colonnes dans R

Jinku Hu 23 janvier 2022
  1. Utilisez la fonction separate pour diviser la colonne en deux colonnes dans R
  2. Utilisez la fonction extract pour diviser la colonne en deux colonnes dans R
  3. Utilisez la fonction str_split_fixed pour diviser la colonne en deux colonnes dans R
Diviser la colonne en deux colonnes dans R

Cet article présentera comment diviser une colonne en deux colonnes en utilisant separate dans R.

Utilisez la fonction separate pour diviser la colonne en deux colonnes dans R

separate fait partie du package tidyr et peut être utilisé pour diviser une colonne de caractères en plusieurs colonnes avec des expressions régulières ou des emplacements numériques. Dans cet exemple de code, nous déclarons une DataFrame qui contient des chaînes de paires nom/prénom séparées par des virgules. La fonction separate prend le cadre de données comme premier argument et le nom de colonne comme deuxième argument. Le troisième argument désigne les noms de variables qui seront les noms de colonnes d’un vecteur de caractères nouvellement créé. Notez que nous utilisons le tube %>% pour passer l’objet df à la fonction separate. Le même appel de fonction peut être invoqué sur le bloc de données où les noms et prénoms sont délimités par un séparateur de points.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
df1 <- data.frame(x = c('John. Mae', 'Maude. Lebowski', 'Mia. Amy', 'Andy. James'))

df %>% separate(x, c('Name', 'Surname'))

df1 %>% separate(x, c('Name', 'Surname'))

Production:

> df %>% separate(x, c('Name', 'Surname'))
   Name   Surname
1  John       Mae
2 Maude  Lebowski
3   Mia       Amy
4  Andy     James

> df1 %>% separate(x, c('Name', 'Surname'))
   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Utilisez la fonction extract pour diviser la colonne en deux colonnes dans R

Une autre fonction utile pour diviser une colonne en deux colonnes distinctes est extract, qui fait également partie du package tidyr. La fonction extract fonctionne sur les colonnes utilisant des groupes d’expressions régulières. Notez que chaque groupe d’expressions régulières doit être mappé sur les éléments du paramètre précédent. Si les groupes et les éléments ne correspondent pas, la sortie aura des valeurs NA.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

Production:

> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Utilisez la fonction str_split_fixed pour diviser la colonne en deux colonnes dans R

Alternativement, nous pouvons utiliser la fonction str_split_fixed du package stringr. Il correspond au modèle de caractère donné et divise le vecteur de caractère en le nombre correspondant de colonnes. Cependant, l’utilisateur peut explicitement transmettre le nombre d’éléments fractionnés à renvoyer. Le nombre d’éléments est passé comme troisième argument.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

str_split_fixed(df$x, ", ", 2)

Production:

> str_split_fixed(df$x, ", ", 2)
     [,1]    [,2]      
[1,] "John"  "Mae"     
[2,] "Maude" "Lebowski"
[3,] "Mia"   "Amy"     
[4,] "Andy"  "James"
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook