Возвращаемый индекс наименьшего значения в векторе?
a <- c(1, 2, 0, 3, 7)
Я ищу функцию, возвращающую индекс наименьшего значения, 3. Что это такое?
Ответы
Ответ 1
Вы ищете 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()
возвращает только индекс первого. Вы можете использовать вторую конструкцию, если вместо этого вам нужны индексы всех элементов, которые соответствуют минимальное значение.)
Ответ 2
Как альтернатива Josh answer
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))