Wie wäre es mit dem Folgenden, 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 Bedingungen im Inneren nach Belieben ändern können. Unter Verwendung col(y)
und Position des hängenden Kommas können Sie auch Spalten extrahieren.
y[,col(y)[y==max(y)]]
Um nur die Zeile für das Maximum in einer bestimmten Spalte zu finden, sagen Sie Spalte 2, die Sie verwenden könnten:
seq(along=y[,2])[y[,2]==max(y[,2])]
Auch hier ist die Bedingung flexibel, um nach unterschiedlichen Anforderungen zu suchen.
Weitere Ideen finden Sie in Phil Spectors ausgezeichnetem "Eine Einführung in S und S-Plus", Kapitel 5.