Como converter múltiplas colunas em fator usando dplyr


Você pode usar os seguintes métodos para converter várias colunas em fator usando funções no pacote dplyr :

Método 1: converter colunas específicas em fator

 library (dplyr) 

df %>% mutate_at(c(' col1 ', ' col2 '), as. factor )

Método 2: converter todas as colunas de caracteres em fator

 library (dplyr)

df %>% mutate_if(is. character , as. factor )

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

Exemplo 1: Converter colunas específicas em fator

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Podemos ver que as colunas equipe , posição e inicial são caracteres enquanto a coluna de pontos é numérica.

Para converter apenas as colunas equipe e posição em fatores, podemos usar a seguinte sintaxe:

 library (dplyr) 

#convert team and position columns to factor
df <- df %>% mutate_at(c(' team ', ' position '), as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Podemos ver que as colunas equipe e posição agora são fatores.

Exemplo 2: Converter todas as colunas de caracteres em fator

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

Podemos ver que três das colunas no quadro de dados são colunas de caracteres.

Para converter todas as colunas de caracteres em fatores, podemos usar a seguinte sintaxe:

 library (dplyr) 

#convert all character columns to factor
df <- df %>% mutate_if(is. character , as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: Factor w/ 2 levels "N","Y": 2 2 2 1 1 2 1 1
 $ points: num 12 24 25 35 30 14 19 11

Podemos ver que todas as colunas de caracteres agora são fatores.

Nota : Consulte a página de documentação do dplyr para uma explicação completa das funções mutate_at e mutate_if .

Recursos adicionais

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

Como converter múltiplas colunas em numérico usando dplyr
Como converter um fator em numérico em R
Como converter uma data em numérico em R

Add a Comment

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