Wie wäre es mit folgendem, wobei y der Name Ihrer Matrix ist und Sie nach dem Maximum in der gesamten Matrix suchen:
row(y)[y==max(y)]
wenn Sie die Zeile extrahieren möchten:
y[row(y)[y==max(y)],] # this returns unsorted rows.
Um sortierte Zeilen zurückzugeben, verwenden Sie:
y[sort(row(y)[y==max(y)]),]
Der Vorteil dieses Ansatzes besteht darin, dass Sie die Bedingung im Inneren nach Belieben ändern können. Auch die Verwendung von col(y)
und der Position des hängenden Kommas können Sie auch Spalten extrahieren.
y[,col(y)[y==max(y)]]
Um nur die Zeile für den Höchstwert in einer bestimmten Spalte zu finden, z. B. Spalte 2, können Sie Folgendes verwenden:
seq(along=y[,2])[y[,2]==max(y[,2])]
Auch hier ist das Konditional flexibel, um unterschiedlichen Anforderungen gerecht zu werden.
Weitere Ideen finden Sie in Phil Spectors ausgezeichnetem Buch "An introduction to S and S-Plus", Kapitel 5.