找到前三个最大元素及其向量索引

时间:2015-06-01 07:25:42

标签: r vector

我有一个看起来像这样的载体

[12,3,4,5,6,7,8,12]

我想找到索引和前三个最大数字的值。最大数字也可以像上面的矢量12重复那样重复。

我用过

  

其中

但它只返回一个数字的索引如何才能完成

输出

[12,12,8]
[1,8,7]

我也读过这个Stack Overflow,但没有帮助

2 个答案:

答案 0 :(得分:5)

x <- c(12, 3, 4, 5, 6, 7, 8, 12)
sort.int(x, decreasing = TRUE, index.return = TRUE)
# $x
# [1] 12 12  8  7  6  5  4  3

# $ix
# [1] 1 8 7 6 5 4 3 2

然后,前三个要素:

sort.int(x, decreasing = TRUE, index.return = TRUE)$ix[1:3]
# [1] 1 8 7

答案 1 :(得分:4)

按降序对矢量进行排序,然后选择前三项:

vec <- c(12,3,4,5,6,7,8,12)

# gives the biggest three elements
sort(vec, decreasing = TRUE)[1:3]
# gives the indices of the first three elements
order(vec, decreasing = TRUE)[1:3]