我有以下要最小化的功能:
calloptim <- function( under,strike, rf, ttoe,par) {(-(under*par[1]
-strike*exp(-rf*ttoe)*par[2]))^2}
我创建了以下对象:
res<- nlminb(c(1,1), calloptim, under= 90, strike = 100, rf =0.05, ttoe=3)
res
$par
[1] 0.9771973 1.0218072
$objective
[1] 3.412923e-16
$convergence
[1] 1
$iterations
[1] 2
$evaluations
function gradient
34 4
$message
[1] "false convergence (8)"
这很好但现在我想抓住$ par估计值并将它们放在一个向量中,这样我就可以将它们用于其他计算。
如何隔离和保存对象的部分结果?
答案 0 :(得分:6)
以下几乎大致相同:
res$par
res["par"]
res[1]
res[[1]]
有关详细信息,请查看?Extract
的帮助页面。我经常发现,当试图找到从哪里抓取东西时,查看对象的str()
是有帮助的,即要提取的对象的名称或者在您正在查看的对象内的数字位置(1 in这种情况)。
答案 1 :(得分:2)
不知道这是否恰好回答了你的要求,但是:
vector <- res$par
> vector
[1] 0.9771973 1.0218072
> vector[1]
[1] 0.9771973
可能存在更加“正确”的存取方法。
答案 2 :(得分:1)
将$par
成员从res
newVals <- res$par
答案 3 :(得分:1)
如果这是previous question的扩展名,您可以使用以下内容提取这些嵌套答案:
out <- apply(f, 1, nlminb, objective=calloptim, under=90, strike=100, rf=0.05, ttoe=3)
out.par <- lapply(out, '[',1)
unlist(out.par, recursive=FALSE)