Как насчет следующего, где y - это имя вашей матрицы, и вы ищете максимум во всей матрице:
row(y)[y==max(y)]
если вы хотите извлечь строку:
y[row(y)[y==max(y)],] # this returns unsorted rows.
Чтобы вернуть отсортированные строки, используйте:
y[sort(row(y)[y==max(y)]),]
Преимущество этого подхода в том, что вы можете изменить условное выражение внутри на все, что вам нужно. Кроме того, используя col(y)и расположение висячей запятой, вы также можете извлекать столбцы.
y[,col(y)[y==max(y)]]
Чтобы найти только строку для максимума в определенном столбце, скажем, в столбце 2, вы можете использовать:
seq(along=y[,2])[y[,2]==max(y[,2])]
опять же, условное выражение гибко, чтобы искать различные требования.
Дополнительные идеи см. В превосходной главе 5 «Введение в S и S-Plus» Фила Спектора.