我在R中有以下data.frame:
> 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
我想更改因子水平的顺序,以使星期以(美国)星期几的顺序排列。
看来我可以用
relevel()
缓慢而令人费解的方式做到这一点。但这仅需要1个数字参数并将其移到顶部。因此,relevel(daily$DoW, 7)
,将星期日移至顶部,但其余的则保持无序状态(这意味着我需要以相反的顺序对其进行调平)。可行,但是必须有更好的方法,对吗?
(时间序列解决方案也可以。)
最佳答案
您需要指定因子级别,然后在索引中使用order
:
daily$DoW <- factor(daily$DoW, levels= c("Sunday", "Monday",
"Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))
daily[order(daily$DoW), ]
关于r - R中按星期几排序的因子水平,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10309564/