通过示例更容易询问。如果我有一个功能
fn <- function(x) {
...
return(c(a,b,c))
}
我希望最大化(或最小化)a
,但也会将b
和c
的值设为最佳值。
当然我可以使用fn2 <- function(x) fn(x)[1]
来确定最佳值,然后再次调用该函数,但我想知道是否有更聪明的方法。
答案 0 :(得分:1)
optim
需要返回值为标量。文件说的是
fn: A function to be minimized (or maximized), with first
argument the vector of parameters over which minimization is
to take place. It should return a scalar result.
您可以将感兴趣的值写入函数内的全局变量。这不一定是最好的做法,但它可以奏效。
f <- function(x){
.vals <<- c(x, x+1)
x^2
}
optim(1, f)
然后我们可以查看.vals
> .vals
[1] 9.765625e-05 1.000098e+00