Livelli dei fattori
Quando ricevi per la prima volta un set di dati, troverai spesso fattori che presentano livelli specifici. Tuttavia, a volte potresti voler modificare i nomi di questi livelli per maggiore chiarezza o per altri motivi. R ti permette di farlo con la funzione levels()
:
levels(factor_vector) <- c("name1", "name2",...)
Un buon esempio è rappresentato dai dati grezzi raccolti attraverso un sondaggio. Una domanda comune in questi questionari riguarda il sesso della persona intervistata. Qui, per semplicità, sono state registrate solo due categorie: "M"
e "F"
. (Di solito, un sondaggio ben strutturato prevede più categorie, ma comunque i dati categorici vengono memorizzati come fattori.
survey_vector <- c("M", "F", "F", "M", "M")
Utilizzare abbreviazioni come "M"
e "F"
può essere comodo se stai raccogliendo i dati con carta e penna, ma può creare confusione durante la fase di analisi. Per questo, vorrai poter cambiare i livelli dei fattori "M"
e "F"
in "Male"
e "Female"
per una maggiore chiarezza.
Attenzione: l'ordine di assegnazione dei livelli è importante. Se digiti levels(factor_survey_vector)
, vedrai che verrà visualizzato l’output [1] "F" "M"
. Se invece non specifichi i livelli del fattore quando crei il vettore, R
li ordinerà automaticamente in ordine alfabetico. Per mappare correttamente "F"
su "Female"
e "M"
su "Male"
, devi assegnare i livelli in quest’ordine c("Female", "Male")
.
Questo esercizio fa parte del corso
Introduzione a R
Istruzioni dell'esercizio
- Osserva il codice che crea un vettore di fattori a partire da
survey_vector
. Per la prossima istruzione, dovresti utilizzarefactor_survey_vector
. - Modifica i livelli dei fattori di
factor_survey_vector
inc("Female", "Male")
. Fai attenzione all’ordine degli elementi nel vettore.
Esercizio pratico interattivo
Prova questo esercizio completando il codice di esempio.
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector