====== 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"