0

我正在尝试对一行的值进行排名。我想看看哪个值最大,哪个是第二大等等。

这是一个简单的例子:

test = c(0.005,0.007,0.009,-0.0008,0.5,-0.074)
order(test)
[1] 6 4 1 2 3 5
which.max(test)
[1] 5

which.max 函数正确地给了我最大值的列,但它没有给我第二大,第三大等,等等。

我相信我可以为此使用函数 order,但它的输出似乎不正确。

我究竟做错了什么?

4

2 回答 2

0

你只需要使用递减参数:

> order(test,decreasing=T)
[1] 5 3 2 1 4 6

或者反过来:

> rev(order(test))
[1] 5 3 2 1 4 6
于 2013-08-19T16:35:43.843 回答
0

如果您正在寻找值而不是索引,那么您应该使用sort

 sort(test,decreasing =TRUE)
    [1]  0.5000  0.0090  0.0070  0.0050 -0.0008 -0.0740
于 2013-08-19T16:48:29.953 回答