这是关于R上的optim()函数的一个简单问题。我试图根据循环变量找到函数的最小值。
f<-function(x,i){
i*x
}
M<-matrix(0,10,1)
for (i in 1:5) {
M[i,1]<-optim(c(1),f,lower=-2,upper=2,method="L-BFGS-B")
}
M
R回答我:
Erreur dans i * x : 'i' est manquant
我真的不明白如何处理这个....
答案 0 :(得分:3)
您必须将i
传递给optim
来电:
optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")
...而optim
会返回一个列表,因此您需要选择要在M
中存储的列表中的哪个元素。我假设你想要par
:
M[i,1] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")$par
更新:
正如贾斯汀在评论中指出的那样,更像R的方式是:L <- list()
for (i in 1:5) {
L[[i]] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")
}
V <- sapply(L, `[[`, "par")