Gibt es eine Funktion, um einen Index (Zeilen- und Spaltennummer) für eine Matrix zu erhalten?Indexwert für Matrix in R?
Nehmen wir an, ich eine einfache Matrix haben:
a <- matrix(1:50, nrow=5)
Gibt es eine einfache Möglichkeit, so etwas wie c zurück zu erhalten (3, 5) für die Zahl "23" zum Beispiel? In diesem Fall sagen which(a==23)
gibt nur 23.
Dies scheint zu funktionieren, aber ich bin sicher, dass ein besserer Weg, es 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