我有一个看起来像这样的载体
[12,3,4,5,6,7,8,12]
我想找到索引和前三个最大数字的值。最大数字也可以像上面的矢量12重复那样重复。
我用过
其中
但它只返回一个数字的索引如何才能完成
输出
[12,12,8]
[1,8,7]
我也读过这个Stack Overflow,但没有帮助
答案 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]