2012-02-22 91 views

回答

69

您正在尋找which.min()

a <- c(1,2,0,3,7,0,0,0) 
which.min(a) 
# [1] 3 

which(a == min(a)) 
# [1] 3 6 7 8 

(正如你可以從上面的,當幾個元素並列最低見,which.min()只返回第一個索引可以使用。第二構造,如果你想要,而不是匹配的最小值,所有元素的索引。)

+0

...是的我想知道如何得到所有最小元素的指數?我需要找出有多少是最小的,完美的!讓我花點時間理解這一點,謝謝。 – hhh 2012-02-22 07:43:50

+1

@hhh - 要找出最少有多少元素,可以使用:sum(a == min(a))'。 – 2012-02-22 07:45:46

11

作爲替代Josh的答案

a <- c(1, 2, 0, 3, 7) 
which(a == min(a)) 

這給出每個等於最小值的索引。因此,如果我們有一個以上的值相匹配的最低值

a <- c(1, 2, 0, 3, 7, 0) 
which(a == min(a)) # returns both 3 and 6 
which.min(a)  # returns just 3 

編輯:如果你正在尋找的是有多少元素等於最小(如你在一個評論暗示),你可以做這個,而不是:

a <- c(1, 2, 0, 3, 7, 0) 
sum(a == min(a))