Подтвердить что ты не робот

Возвращаемый индекс наименьшего значения в векторе?

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

Я ищу функцию, возвращающую индекс наименьшего значения, 3. Что это такое?

4b9b3361

Ответ 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))