19

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)、 は日曜日を一番上に移動しますが、残りは順不同のままです (つまり、逆の順序で再レベル化する必要があります)。

実行可能ですが、もっと良い方法があるはずですよね?

(時系列解でも可)

4

2 に答える 2

24

orderfactor でレベルを指定してから、インデックス付けで使用する必要があります。

daily$DoW <- factor(daily$DoW, levels= c("Sunday", "Monday", 
    "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))

daily[order(daily$DoW), ]
于 2012-04-25T05:09:43.930 に答える