Как найти строки в матрице только с минимальным элементом в первом столбце?

#r #min

Вопрос:

Я рассматриваю метод оптимизации меда Нелдера, и мне нужно вернуть матрицу с минимальным значением в первом столбце.

Мой код:

  fun lt;- function(x){  3*(sin(0.5 0.25*x[2]*x[1]))*cos(x[1]) } out lt;- matrix(NA, nrow=100, ncol=3) for (i in 1:100) {  x lt;- runif(1, -7, 7)  y lt;- runif(1, -7, 7)  x0 lt;- c(x,y)  res lt;- optim(x0,fun,method="Nelder-Mead")   out[i,] lt;- round(c(res$value,res$par) , digits = 5) }  out  

Ответ №1:

Создайте логический вектор с min первым столбцом и подмножеством матрицы

 out1 lt;- out[out[,1] == min(out[,1]),]