如果我有一个向量x,我想知道x的哪5个值具有最小值,并且它们在x中的位置。
x的最小5个值将是sort(x)[1:5],
但我怎么知道这些值在原始x向量中的位置?
答案 0 :(得分:2)
您正在寻找order
功能。
order返回一个排列,它将第一个参数重新排列为升序或降序,通过进一步的参数打破联系。 sort.list是相同的,只使用一个参数。
> x <- rnorm(10)
[1] 1.6722546 1.3608374 0.7912174 -0.7017244 -0.2093535 1.7224396 -0.9370661 -1.5226014 0.4416517 -0.0455294
> order(x)
[1] 8 7 4 5 10 9 3 2 1 6
> x[order(x)[1:3]]
[1] -1.5226014 -0.9370661 -0.7017244