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