Come aggiungere un nuovo livello al fattore r (con esempio)


È possibile utilizzare la seguente sintassi di base per aggiungere un nuovo livello a una variabile fattore in R:

 levels(df$my_factor) <- c(levels(df$my_factor), ' new_level ')

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: aggiungere un nuovo livello al fattore in R

Supponiamo di avere il seguente frame di dati in R che mostra il numero di vendite effettuate in diverse regioni per un negozio al dettaglio:

 #create data frame
df <- data. frame (region=factor(c('A', 'B', NA, 'D', NA, 'F')),
                 sales=c(12, 18, 21, 14, 34, 40))

#view data frame
df

  regional sales
1 to 12
2 B 18
3 <NA> 21
4 D 14
5 <NA> 34
6 F 40

Si noti che la variabile regione è un fattore.

Per visualizzare i livelli di questo fattore, possiamo utilizzare la funzione Levels() :

 #view factor levels for region
levels(df$region)

[1] “A” “B” “D” “F”

Possiamo utilizzare la seguente sintassi per aggiungere un nuovo livello di fattore chiamato “nessuna regione”:

 #add factor level called 'no region'
levels(df$region) <- c(levels(df$region), ' no region ')

#convert each NA to 'no region'
df$region[is. na (df$region)] <- ' no region '

#view factor levels for region
levels(df$region)

[1] “A” “B” “D” “F” “no region”

Come livello di fattore è stato aggiunto il nuovo livello denominato “nessuna regione”.

Se lo desideriamo, possiamo utilizzare la funzione table() per contare le occorrenze di ciascun livello di fattore:

 #view occurrences of each factor level
table(df$region)

ABDF no region 
1 1 1 1 2 

Dal risultato, possiamo vedere che il nuovo livello di fattore chiamato “nessuna regione” appare due volte nella colonna regione del frame dati.

Risorse addizionali

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

Come convertire un fattore in numerico in R
Come convertire un fattore in un carattere in R
Come riorganizzare i livelli dei fattori in R

Aggiungi un commento

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