2012-02-22 87 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))