Come convertire più colonne in fattorizzando utilizzando dplyr


È possibile utilizzare i seguenti metodi per convertire più colonne in fattori utilizzando le funzioni nel pacchetto dplyr :

Metodo 1: convertire colonne specifiche in fattori

 library (dplyr) 

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

Metodo 2: convertire tutte le colonne di caratteri in fattore

 library (dplyr)

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

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.  

Esempio 1: convertire colonne specifiche in fattori

Supponiamo di avere il seguente frame di dati in 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

Possiamo vedere che le colonne squadra , posizione e titolare sono caratteri mentre la colonna punti è numerica.

Per convertire solo le colonne squadra e posizione in fattori, possiamo utilizzare la seguente sintassi:

 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

Possiamo vedere che le colonne della squadra e della posizione ora sono entrambi fattori.

Esempio 2: convertire tutte le colonne di caratteri in fattori

Supponiamo di avere il seguente frame di dati in 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

Possiamo vedere che tre delle colonne nel frame di dati sono colonne di caratteri.

Per convertire tutte le colonne di caratteri in fattori, possiamo utilizzare la seguente sintassi:

 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

Possiamo vedere che tutte le colonne di caratteri ora sono fattori.

Nota : fare riferimento alla pagina della documentazione di dplyr per una spiegazione completa delle funzioni mutate_at e mutate_if .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come convertire più colonne in numeriche utilizzando dplyr
Come convertire un fattore in numerico in R
Come convertire una data in numerica in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *