Il contenuto di questo sito è rilasciato sotto licenza Creative Commons License se non specificato diversamente

Impostare un ordinamento per variabili categoriche (fattori)

Spesso di ha a che fare con dati di tipo categorico o fattori che possono possedere un ordine naturale diverso da quello lessiografico, vedi ad esempio un range di età; se si vuol rappresentare un diagramma di frequenza di questi fattori sarà necessario ordinarli in maniera opportuna. Per far ciò è possibile usare la funzione ordered (che non è altro che un alias della funzione factor così nominata per retro compatibilità)

Supponiamo che la nostra matrice dei dati si chiami dati e che al suo interno abbia una variabile di tipo factor di nome eta.

str(dati)
.......
$ eta              : Factor w/ 7 levels "18-24","25-34",..: 2 2 1 2 2 2 2 1 3 2 ...
......
> levels(dati$eta)
[1] "18-24"       "25-34"       "35-44"       "45-54"       "55-64"       "65 e oltre"
[7] "Minore di 18"

disegnando un diagramma di frequenza a barre queste utilizzerebbero l'ordine lessiografico dei fattori, mentre in realtà ciò che serve è un ordine “naturale” ottenibile “suggerendo” quale sia l'ordine dei fattori.

> dati$eta <- ordered(dati$eta, levels = c("Minore di  18",  "18-24","25-34"   ,  "35-44"   ,  "45-54",  "55-64" , "65 e oltre" ) )

Se visualizziamo adesso la versione stringata di dati notereno che la variabile eta è passata da factor ad ord.factor e che i fattori adesso hanno un ordine diverso

str(dati)
$ eta              : Ord.factor w/ 7 levels "Minore di  18"<..: 3 3 2 3 3 3 3 2 4 3 ..

se visualizzaimo i livelli (valori) del fattore eta adesso questi saranno ordinati in base all'ordine prescelto

levels(dati$eta)
[1] "Minore di  18" "18-24"         "25-34"         "35-44"         "45-54"         "55-64"        
[7] "65 e oltre"
 
r/orderfactor.txt · Ultima modifica: 2015/01/07 22:02 da fcasadei
 
Recent changes RSS feed