R:列表中的哪个元素对应于排序列表的元素

时间:2016-11-17 00:06:04

标签: r list

如果我有一个向量x,我想知道x的哪5个值具有最小值,并且它们在x中的位置。

x的最小5个值将是sort(x)[1:5],

但我怎么知道这些值在原始x向量中的位置?

1 个答案:

答案 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