我正在使用R中的optim运行一个优化例程,并告诉程序我想要返回什么。例如,如果我放return(op1$par)
,它将返回我的所有4个变量值。这很好,如果我运行return(op1)
,我显然可以从优化例程中获取所有信息(par,value,convergence等)。但是,在这种格式中,par值在输出中是不可访问的,它只是详细说明有4个值。
现在我需要的是同时获取参数值和收敛信息。 R不会让我称之为return(op1$par, op1$convergence)
所以我正在寻找一次运行这两个实体的最佳方法吗?
我应该指定我将这个写入文件中1000次迭代,而不只是想在屏幕上调用一次。
干杯
答案 0 :(得分:2)
尝试这样的事情:
return(c(Parameters=op1$par, Convergence=op1$convergence))
名称Parameters
和Convergence
仅用于标识什么是参数以及什么是收敛,因为此结果将是向量。
答案 1 :(得分:0)
按照设计,一个函数只能返回一个对象(否则像a <- fn(b)
这样的赋值会让人感到困惑;你指定哪个东西?)。但是该对象可以是向量或列表(这是optim
所做的)。所以将你的参数包装成类似
return(c(par=op1$par, convergence=op1$convergence))
或更一般地(对于不同类型的对象),
return(list(par=op1$par, convergence=op1$convergence))