Як щодо наступного, де 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])]
знову ж умовний гнучкість для пошуку різних вимог.
Докладні ідеї дивіться у чудовому «Вступ до S та S-Plus» Розділу 5 Філа Спектора.