Trouver l’index de ligne et de colonne de la valeur maximale dans une masortingce

Je souhaite trouver la valeur-élément maximale d’une masortingce et son emplacement (dans l’identifiant de ligne et de colonne dans la masortingce).

J’utilise la fonction suivante pour retourner la ligne et la colonne de la masortingce.

Cela semble être un mauvais hack – c’est le genre de chose où je manque probablement une méthode native. Y a-t-il une meilleure façon / plus de R ?

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)) } 

Je utilise est 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)