separar - ordenar fechas en r
Reordenar los niveles de factor por día de la semana en R (2)
Debe especificar los niveles en factor y luego usar el order
con la indexación:
daily$DoW <- factor(daily$DoW, levels= c("Sunday", "Monday",
"Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))
daily[order(daily$DoW), ]
Tengo el siguiente data.frame en R:
> daily
DoW Duration
1 Friday 14.0000000000000
2 Monday 21.0000000000000
3 Saturday 12.0000000000000
4 Thursday 28.0000000000000
5 Tuesday 12.0000000000000
6 Wednesday 91.0000000000000
7 Sunday 20.0000000000000
Me gustaría cambiar el orden de los niveles de los factores para que las semanas estén en orden del día de la semana (en los EE. UU.).
Parece que puedo hacer esto de una manera lenta y desconcertante con relevel()
. Pero esto solo toma 1 argumento numérico y lo mueve a la parte superior. Entonces, relevel(daily$DoW, 7)
, se mueve el domingo a la cima, pero el resto permanece desordenado (lo que significa que necesito relevelearlo en orden inverso).
Se puede hacer, pero debe haber una mejor manera, ¿verdad?
(Solución de series de tiempo también aceptable.)
En lugar de un factor
, lo que quieres es un Ordered.Factor
.
Esta línea de código R convierte su variable DoW
en un "Factor Ordenado":
daily$DoW <- ordered(daily$DoW, levels=c("Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"))
Ahora, cuando use la table
, el plot
o cualquier otra función en Dow
, será el orden que especificó anteriormente.