A co z następującym, gdzie y to nazwa twojej macierzy i szukasz maksimum w całej macierzy:
row(y)[y==max(y)]
jeśli chcesz wyodrębnić wiersz:
y[row(y)[y==max(y)],] # this returns unsorted rows.
Aby zwrócić posortowane wiersze, użyj:
y[sort(row(y)[y==max(y)]),]
Zaletą tego podejścia jest to, że możesz zmienić warunek wewnętrzny na wszystko, czego potrzebujesz. Ponadto, używając col(y)
i lokalizacji wiszącego przecinka, możesz również wyodrębnić kolumny.
y[,col(y)[y==max(y)]]
Aby znaleźć tylko wiersz dla maksimum w określonej kolumnie, powiedzmy kolumnę 2, której możesz użyć:
seq(along=y[,2])[y[,2]==max(y[,2])]
ponownie warunek jest elastyczny, aby szukać różnych wymagań.
Zobacz znakomite „Wprowadzenie do S i S-Plus” Phila Spectora Rozdział 5, aby uzyskać dodatkowe pomysły.