Dividir columna en dos columnas en R

Jinku Hu 30 enero 2023
  1. Utilice la función separate para dividir la columna en dos columnas en R
  2. Utilice la función extract para dividir la columna en dos columnas en R
  3. Utilice la función str_split_fixed para dividir la columna en dos columnas en R
Dividir columna en dos columnas en R

Este artículo presentará cómo dividir una columna en dos columnas usando separate en R.

Utilice la función separate para dividir la columna en dos columnas en R

separate es parte del paquete tidyr y se puede usar para dividir una columna de caracteres en varias columnas con expresiones regulares o ubicaciones numéricas. En este ejemplo de código, declaramos un DataFrame que contiene cadenas de pares nombre / apellido separadas por comas. La función separate toma el DataFrame como primer argumento y el nombre de la columna como segundo argumento. El tercer argumento denota los nombres de variables que serán nombres de columna de un vector de caracteres recién creado. Tenga en cuenta que usamos tubería %>% para pasar el objeto df a la función separate. La misma llamada de función se puede invocar en el DataFrame donde el nombre y los apellidos se delimitan con un separador de puntos.

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'))

Producción :

> 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

Utilice la función extract para dividir la columna en dos columnas en R

Otra función útil para dividir una columna en dos separadas es extract, que también forma parte del paquete tidyr. La función extract funciona en columnas que utilizan grupos de expresiones regulares. Tenga en cuenta que cada grupo de expresión regular debe asignarse a los elementos del parámetro anterior. Si los grupos y los elementos no coinciden, la salida tendrá valores 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"), "([^,]+), ([^)]+)")

Producción :

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

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

Utilice la función str_split_fixed para dividir la columna en dos columnas en R

Alternativamente, podemos utilizar la función str_split_fixed del paquete stringr. Coincide con el patrón de caracteres dado y divide el vector de caracteres en el número correspondiente de columnas. Sin embargo, el usuario puede pasar explícitamente el número de elementos divididos para devolver. El número de elementos se pasa como tercer argumento.

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)

Producción :

> str_split_fixed(df$x, ", ", 2)
     [,1]    [,2]      
[1,] "John"  "Mae"     
[2,] "Maude" "Lebowski"
[3,] "Mia"   "Amy"     
[4,] "Andy"  "James"
Autor: 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