Como dividir uma coluna em várias colunas em r (com exemplos)


Você pode usar um dos dois métodos para dividir uma coluna em várias colunas em R:

Método 1: use str_split_fixed()

 library (stringr)

df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)

Método 2: use separado()

 library (dplyr)
library (tidyr)

df %>% separate(original_column, c(' col1 ', ' col2 '))

Os exemplos a seguir mostram como usar cada método na prática.

Método 1: use str_split_fixed()

Suponha que temos o seguinte quadro de dados:

 #create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#view data frame
df

         player points assists
1 John_Wall 22 8
2 Dirk_Nowitzki 29 4
3 Steve_Nash 18 15

Podemos usar a função str_split_fixed() do pacote stringr para dividir a coluna ‘player’ em duas novas colunas chamadas ‘Primeira’ e ‘Última’ como segue:

 library (stringr)

#split 'player' column using '_' as the separator
df[c(' First ', ' Last ')] <- str_split_fixed(df$player, ' _ ', 2)

#view updated data frame
df

         player points assists First Last
1 John_Wall 22 8 John Wall
2 Dirk_Nowitzki 29 4 Dirk Nowitzki
3 Steve_Nash 18 15 Steve Nash

Observe que duas novas colunas são adicionadas no final do quadro de dados.

Sinta-se à vontade para reorganizar as colunas e remover as colunas originais do “jogador”, se desejar:

 #rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]

#view updated data frame
df_final

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Método 2: use separado()

O código a seguir mostra como usar a função Separate() do pacote Tidyr para separar a coluna “player” em “primeira” e “última” colunas:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Observe que a função Separate() separará strings com base em qualquer valor não alfanumérico.

Por exemplo, se o nome e o sobrenome fossem separados por vírgula, a função Separate() seria automaticamente dividida com base na localização da vírgula:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Você pode encontrar a documentação online completa para a função Separate() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em R:

Como combinar duas colunas em uma em R
Como classificar um quadro de dados por coluna em R
Como adicionar colunas ao quadro de dados em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *