确定R中向量中的最小值

Sha*_*zad 6 r

我需要一些帮助来确定向量中的多个最小值.我们假设,我有一个向量x:

x<-c(1,10,2, 4, 100, 3)
Run Code Online (Sandbox Code Playgroud)

并且想确定最小的3个元素的索引,即1,2和3.我需要索引,因为我将使用索引来访问另一个向量中的相应元素.当然,排序将提供最小值,但我想知道在排序之前它们的实际发生的索引.

Jil*_*ina 9

为了找到索引,试试这个

which(x %in% sort(x)[1:3])  # this gives you and index vector
[1] 1 3 6
Run Code Online (Sandbox Code Playgroud)

这表示第一个,第三个和第六个元素是向量中的前三个最低值,以查看这些值是尝试的:

x[ which(x %in% sort(x)[1:3])]  # this gives the vector of values
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

要不就

x[c(1,3,6)]
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

如果您有任何重复的值,您可能需要先选择唯一值,然后对它们进行排序以找到索引,就像这样(由@Jeffrey Evans在他的回答中提出)

which(x %in% sort(unique(x))[1:3])
Run Code Online (Sandbox Code Playgroud)


fra*_*nkc 5

我想你的意思是你想知道底部3个元素的索引是什么?在那种情况下你想要order(x)[1:3]