#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]),]