Je souhaite trouver la valeur d'élément maximale d'une matrice et son emplacement (en ligne et en colonne dans la matrice)
J'utilise la fonction suivante pour renvoyer la ligne et la colonne de la matrice.
Cela ressemble à un mauvais bidouillage - c'est le genre de chose où il me manque probablement une méthode native. Y a-t-il un meilleur/ plus R moyen?
Voici ma fonction:
matxMax <- function(mtx)
{
colmn <- which(mtx == max(mtx)) %/% nrow(mtx) + 1
row <- which(mtx == max(mtx)) %% nrow(mtx)
return( matrix(c(row, colmn), 1))
}
J'utilise comme suit:
mm <- matrix(rnorm(100), 10, 10)
maxCords <- matxMax(mm)
mm[maxCords]
Vous pourriez faire
## 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
Que penses-tu de ceux-ci?
which.min(mm)
which.max(mm)