R 对返回多个值的函数使用optimize()

R 对返回多个值的函数使用optimize(),r,R,通过例子更容易提问。如果我有一个函数 fn <- function(x) { ... return(c(a,b,c)) } fnoptim需要将返回值设置为标量。文件上是这样说的 fn: A function to be minimized (or maximized), with first argument the vector of parameters over which minimization is to take place. It shou

通过例子更容易提问。如果我有一个函数

fn <- function(x) {
...
return(c(a,b,c))
}

fn
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)

我对此表示怀疑
optimize
已经多次调用该函数以找到所需的值。再打一个电话不应该那么低效。另外,它希望
f
只返回一个值,否则就不清楚如何比较值以了解是否取得了进展。是的,这就是我目前正在做的,只是我不喜欢混合环境。谢谢
> .vals
[1] 9.765625e-05 1.000098e+00