我在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/

10-12 19:40