Divida a coluna em duas colunas em R

Jinku Hu 30 janeiro 2023
  1. Use a função separate para dividir a coluna em duas colunas em R
  2. Use a função extract para dividir a coluna em duas colunas em R
  3. Use a função str_split_fixed para dividir a coluna em duas colunas em R
Divida 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"
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