If I name the elements of the vector of initial values passed to 
optim(), then it attaches the names to the final result, e.g.

 > f <- function(parms) (parms[1]-1)^2+(parms[2]-2)^2
 > optim(c(x=3,y=4), f)
$par
         x         y
0.9999635 2.0003241

$value
[1] 1.063637e-07

$counts
function gradient
       65       NA

$convergence
[1] 0

$message
NULL

However, the vector that gets passed to f doesn't have its names attached:

 > f <- function(parms) {
+  print(parms)
+  (parms["x"]-1)^2+(parms["y"]-2)^2
+ }
 > optim(c(x=3,y=4), f)
[1] 3 4
Error in optim(c(x = 3, y = 4), f) : function cannot be evaluated at 
initial parameters

Is this something that should be fixed, i.e. could it be fixed without 
making optim() substantially slower?  If not, it's at least something 
that should be documented.

Duncan Murdoch

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to