Existe-t-il une fonction pour obtenir un index (numéro de rangée et numéro de colonne) pour une matrice?
Supposons que j'ai une matrice simple:
a <- matrix(1:50, nrow=5)
Existe-t-il un moyen facile de récupérer quelque chose comme C (3, 5) pour le numéro "23", par exemple? Dans ce cas, dire which(a==23)
vient de retourner 23.
Cela semble fonctionner mais je suis sûr qu'il y a une meilleure façon:
matrix.index <- function(a, value) {
idx <- which(data.frame(a)==value)
col.num <- ceiling(idx/nrow(a))
row.num <- idx - (col.num-1) * nrow(a)
return(c(row.num, col.num))
}
> matrix.index(a, 23)
[1] 3 5
> matrix.index(a, 50)
[1] 5 10
Il suffit de regarder l'aide pour which()
Après avoir posté ceci et trouvé la réponse: le paramètre arr.ind.
which(a==23, arr.ind=TRUE)
row col
[1,] 3 5