8

1から3までの整数のベクトルがあります(それ以上になることもあります):

x <- sample(1:3, 10, replace=T)

[1] 1 3 1 2 2 1 3 2 3 2

並べ替えればx手に入る

sort(x)
[1] 1 1 1 2 2 2 2 3 3 3

しかし、最初に 2 秒、次に 1 秒、次に 3 秒が必要です。

[1] 2 2 2 2 1 1 1 3 3 3

では、 vector がある場合、y = c(2, 1, 3)それを並べ替え順序に使用するにはどうすればよいでしょうか?

そして実際には、値自体は必要ありませんが、order関数から取得した元のベクトルの並べ替えられた値のインデックスが必要です。

4

2 に答える 2

8

やや複雑なオプション:

x[order(factor(x,levels = c(2,1,3)))]

または明らかにorder、インデックスだけを呼び出すだけです。

于 2013-07-19T17:18:41.260 に答える