Frage

Gibt es eine Funktion, um einen Index (Zeilennummer und Spaltennummer) für eine Matrix abzurufen?

Angenommen, ich habe eine einfache Matrix:

a <- matrix(1:50, nrow=5)

Gibt es eine einfache Möglichkeit, beispielsweise für die Zahl "23" so etwas wie C (3, 5) zurückzubekommen? In diesem Fall sagen which(a==23) kehrt nur 23 zurück.

Dies scheint zu funktionieren, aber ich bin sicher, dass es einen besseren Weg gibt:

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
War es hilfreich?

Lösung

Ich habe mir nur die Hilfe angesehen which() Nachdem Sie dies gepostet haben und die Antwort gefunden haben: Der arr.ind -Parameter.

which(a==23, arr.ind=TRUE)
     row col
[1,]   3   5
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top