Как насчет следующего, где у - имя вашей матрицы, и вы ищете максимум во всей матрице:
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])]
опять-таки, условное выражение является гибким, чтобы искать различные требования.
Дополнительные идеи см. В превосходной главе "Введение в S и S-Plus" Фила Спектора.