From ripley at stats.ox.ac.uk  Thu Mar  2 20:52:55 2006
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 2 Mar 2006 19:52:55 +0000 (GMT)
Subject: [Rd] Named parameters in optim()
In-Reply-To: <44071B23.2000706@stats.uwo.ca>
References: <44071B23.2000706@stats.uwo.ca>
Message-ID: <Pine.LNX.4.64.0603021952390.29313@gannet.stats.ox.ac.uk>

I think the cost is small, and have just added this.

On Thu, 2 Mar 2006, Duncan Murdoch wrote:

> 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Named parameters in optim()
Prof Brian Ripley