Dividir columna en dos columnas en R
-
Utilice la función
separate
para dividir la columna en dos columnas en R -
Utilice la función
extract
para dividir la columna en dos columnas en R -
Utilice la función
str_split_fixed
para dividir la 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"
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