`die ()` - Funktion für die matrix-Indizes

Sagen, ich habe einige matrix, zum Beispiel:

> m = matrix(rep(c(0, 0, 1), 4), nrow = 4)
> m
     [,1] [,2] [,3]
[1,]    0    0    1
[2,]    0    1    0
[3,]    1    0    0
[4,]    0    0    1

Wenn ich which, bekomme ich die Liste der normalen Indizes:

> which(m == 1)
[1]  3  6  9 12

Möchte ich, um so etwas wie die matrix-Indizes - jeder index, der die Zeile und die Spalte Nummer:

     [,1] [,2]
[1,]    3    1
[2,]    2    2
[3,]    1    3
[4,]    4    3

Gibt es eine einfache Funktion, dies zu tun? Außerdem, es sollte irgendwie enthalten die Zeilen-und Spaltennamen:

> rownames(m) = letters[1:4]
> colnames(m) = letters[5:7]
> m
  e f g
a 0 0 1
b 0 1 0
c 1 0 0
d 0 0 1

aber ich weiß nicht, wie, vielleicht, wie

     [,1] [,2] [,3] [,4]
[1,]    3    1    c    e
[2,]    2    2    b    f
[3,]    1    3    a    g
[4,]    4    3    d    g

oder, vielleicht wieder 2 Vektoren (Zeilen oder Spalten), wie

c b a d
3 2 1 4

e f g g
1 2 3 3

InformationsquelleAutor TMS | 2011-09-21

Schreibe einen Kommentar