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"