2012-02-22 3 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

+1

@hhh - Чтобы узнать, сколько элементов минимально, вы можете просто использовать: sum (a == min (a)) '. –

11

в качестве альтернативы ответа Джоша

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 

Edit: Если то, что вы ищете только, сколько элементов равен минимуму (как следует, в одном из комментариев), вы можете сделайте это вместо этого:

a <- c(1, 2, 0, 3, 7, 0) 
sum(a == min(a)) 
Смежные вопросы