Возвращаемый индекс наименьшего значения в векторе?
a <- c(1, 2, 0, 3, 7)
Я ищу функцию для возврата индекса наименьшего значения, 3. Что это такое?
- Сценарий Sourcing R поверх HTTPS
- Добавление нового столбца к каждому элементу в списке таблиц или фреймов данных
- Лучший способ конвертировать список в вектор?
- Создайте последовательность, такую как 112123123412345
- извлекать имена объектов из списка
- Что делает функция «pol» на самом деле?
- R: Маскированные функции
- Вычислить разницу между значениями в последовательных строках по группам
Вы ищете 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()
возвращает только индекс первого. Вы можете использовать вторую конструкцию, если хотите вместо этого индексы всех элементов, которые соответствуют минимальное значение.)
В качестве альтернативы ответа Джоша
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))