Come convertire un numero in un fattore in r (con esempi)


Esistono due metodi che è possibile utilizzare per convertire una variabile numerica in una variabile fattoriale in R:

Metodo 1: utilizzare as.factor()

 df$factor_variable <- as. factor (df$numeric_variable)

Ciò convertirà la variabile numerica in una variabile fattore con un numero di livelli pari al numero di valori univoci nella variabile numerica originale.

Metodo 2: utilizzare cut()

 df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))

Questo particolare esempio convertirà la variabile numerica in una variabile fattoriale “tagliando” la variabile numerica in 3 valori equidistanti.

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 15, 22, 29, 35, 24, 11, 24))

#view data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: num 12 15 22 29 35 24 11 24

Esempio 1: convertire un numero in un fattore utilizzando as.factor()

Il codice seguente mostra come utilizzare as.factor() per convertire la colonna punto da numerica a fattore:

 #convert points column from numeric to factor
df$points <- as. factor (df$points)

#view updated data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5

Utilizzando la funzione str() per visualizzare la struttura del data frame, possiamo vedere che la colonna di punti è ora un fattore con 7 diversi livelli che rappresentano i 7 valori numerici univoci nella colonna.

Esempio 2: convertire un numero in un fattore utilizzando cut()

Il codice seguente mostra come utilizzare cut() per convertire la colonna di punti da una variabile numerica a una variabile fattore a 3 livelli:

 #convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))

#view updated data frame
df

  team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2

Dal risultato possiamo vedere che la variabile punti è stata convertita da variabile numerica a variabile fattore con tre livelli e le seguenti etichette:

  • “VA BENE”
  • “BENE”
  • “Grande”

Tieni presente che in questo esempio abbiamo scelto di utilizzare tre livelli, ma sentiti libero di tagliare la variabile numerica in tutti i livelli che desideri sostituendo il 3 nella funzione cut() con un altro valore.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come convertire numerici in caratteri in R
Come convertire un fattore in numerico in R
Come convertire un fattore in un carattere in R

Aggiungi un commento

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