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_vectorinc("Female", "Male"). Fai attenzione all’ordine degli elementi nel vettore.
Esercizio pratico interattivo
Prova a risolvere 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