1

我在 R 中使用 optim 运行优化例程,并告诉程序我想要返回什么。例如,如果我 put return(op1$par),它将返回我的所有 4 个变量值。很好,如果我运行return(op1),我显然会从优化例程中获得所有信息(par、value、convergence 等)。但是,在这种格式中,par 值无法在输出中访问,它只是详细说明有 4 个值。

现在我需要的是同时获取参数值和收敛信息。R 不会让我 return(op1$par, op1$convergence)这么称呼它,所以我正在寻找一次运行这两个实体的最佳方法?

我应该指定我将它写入一个文件进行 1000 次迭代,而不仅仅是在屏幕上调用它一次。

干杯

4

2 回答 2

2

尝试这样的事情:

return(c(Parameters=op1$par, Convergence=op1$convergence))

名称ParametersConvergence仅用于识别什么是参数以及什么是收敛,因为这个结果将是一个向量。

于 2012-09-07T20:25:23.860 回答
0

按照设计,一个函数只能返回一个对象(否则赋值之类的a <- fn(b)会让人感到困惑;你分配的是哪一个?)。但是那个对象可以是一个向量,也可以是一个列表(就是optim这样)。所以把你的论点包装成类似的东西

return(c(par=op1$par, convergence=op1$convergence))

或更一般地(对于不同类型的对象),

return(list(par=op1$par, convergence=op1$convergence))
于 2012-09-07T20:47:54.463 回答