Найти индекс строки и столбца максимального значения в матрице
Я хочу найти максимальное значение элемента матрицы и его местоположение (в строке и в столбце id в матрице).
Я использую следующую функцию для возврата строки и столбца матрицы.
Это похоже на плохой взлом - это нечто вроде того, где, вероятно, отсутствует собственный метод. Есть ли лучший способ?
Здесь моя функция:
matxMax <- function(mtx)
{
colmn <- which(mtx == max(mtx)) %/% nrow(mtx) + 1
row <- which(mtx == max(mtx)) %% nrow(mtx)
return( matrix(c(row, colmn), 1))
}
Я использую следующее:
mm <- matrix(rnorm(100), 10, 10)
maxCords <- matxMax(mm)
mm[maxCords]
спасибо
Ответы
Ответ 1
Вы могли бы сделать
## Some data
set.seed(123)
mm <- matrix(rbinom(40, 20, 0.5), 8, 5)
mm
# [,1] [,2] [,3] [,4] [,5]
# [1,] 9 10 8 11 11
# [2,] 12 10 6 11 12
# [3,] 9 14 9 10 6
# [4,] 13 10 14 11 10
# [5,] 13 11 13 9 12
# [6,] 6 10 11 8 8
# [7,] 10 7 11 14 9
# [8,] 13 13 16 13 8
which(mm == max(mm), arr.ind = TRUE)
# row col
# [1,] 8 3
Ответ 2
Как насчет этих?
which.min(mm)
which.max(mm)