从Optim返回多个输出参数

时间:2012-09-07 20:18:10

标签: r

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

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

我应该指定我将这个写入文件中1000次迭代,而不只是想在屏幕上调用一次。

干杯

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

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

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

答案 1 :(得分:0)

按照设计,一个函数只能返回一个对象(否则像a <- fn(b)这样的赋值会让人感到困惑;你指定哪个东西?)。但是该对象可以是向量或列表(这是optim所做的)。所以将你的参数包装成类似

的东西
return(c(par=op1$par, convergence=op1$convergence))

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

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