En esta entrada voy a mostrar tres maneras (que vienen a ser la misma) de ordenar los niveles de un factor en R:
- La básica
- La sofisticada
- El atajo
Antes, responderé a una pregunta: ¿por qué reordenar niveles en factores? La mejor respuesta que se me ocurre: si no la sabes, deja de leer ya. Te aseguro que, a poco que trabajes con R, acabarás retomando la lectura.
La forma básica es la siguiente:
Es manual y hay que fabricar a mano la permutación de los índices.
La forma sofisticada puede emplearse cuando la permutación puede definirse mediante una función. Por ejemplo, para ordenarlos alfabéticamente, puede hacerse
o también, de una manera algo más general, esto otro:
El orden puede determinarlo otra variable. Por ejemplo, en el pedazo de código siguiente, queremos ordenar los niveles del factor según el máximo de los valores correspondientes de un vector numérico de la misma longitud:
Para este último tipo de transformaciones (muy frecuente para ordenar gráficos) existe un atajo, la función reorder:
¡Es muy instructivo consultar su código fuente!
Hola,
No nos olvidemos de relevel.
http://stat.ethz.ch/R-manual/R-patched/library/stats/html/relevel.html
jaume.
@jaume
Cierto, cierto, está relevel, que tiene un uso específico (pone un determinado nivel el primero en la lista de todos ellos sin modificar el uso del resto) pero seguro que muy útil en muchos contextos.
¡Gracias por la nota!
«¿por qué reordenar niveles en factores? La mejor respuesta que se me ocurre: si no la sabes, deja de leer ya. Te aseguro que, a poco que trabajes con R, acabarás retomando la lectura.»
Creo que es lo mejor que he leído en mucho tiempo…
Gracias por la ayuda… una masa.