[Rd] Named parameters in optim()
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Mar 2 17:19:47 CET 2006
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
More information about the R-devel
mailing list