Divida a coluna em duas colunas em R
-
Use a função
separate
para dividir a coluna em duas colunas em R -
Use a função
extract
para dividir a coluna em duas colunas em R -
Use a função
str_split_fixed
para dividir a coluna em duas colunas em R
Este artigo irá apresentar como dividir uma coluna em duas colunas usando separate
em R.
Use a função separate
para dividir a coluna em duas colunas em R
separate
faz parte do pacote tidyr
e pode ser usado para dividir uma coluna de caracteres em várias colunas com expressões regulares ou localizações numéricas. Neste exemplo de código, declaramos um quadro de dados que contém strings separadas por vírgula de pares nome / sobrenome. A função separate
leva o quadro de dados como o primeiro argumento e o nome da coluna como o segundo argumento. O terceiro argumento denota os nomes das variáveis que serão os nomes das colunas de um vetor de caracteres recém-criado. Observe que usamos o tubo %>%
para passar o objeto df
para a função separate
. A mesma chamada de função pode ser chamada no quadro de dados, onde o nome e os sobrenomes são delimitados por um separador de ponto.
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'))
Resultado:
> 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
Use a função extract
para dividir a coluna em duas colunas em R
Outra função útil para dividir uma coluna em duas separadas é extract
, que também faz parte do pacote tidyr
. A função extract
funciona em colunas que usam grupos de expressões regulares. Observe que cada grupo de expressão regular deve ser mapeado para os itens no parâmetro anterior. Se os grupos e itens não corresponderem, a saída terá 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"), "([^,]+), ([^)]+)")
Resultado:
> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
Use a função str_split_fixed
para dividir a coluna em duas colunas em R
Alternativamente, podemos utilizar a função str_split_fixed
do pacote stringr
. Ele corresponde ao padrão de caractere fornecido e divide o vetor de caractere no número correspondente de colunas. Porém, o usuário pode passar explicitamente o número de itens divididos a serem retornados. O número de itens é passado como terceiro 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)
Resultado:
> 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