From murdoch at stats.uwo.ca  Thu Mar  2 21:01:06 2006
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Thu, 02 Mar 2006 15:01:06 -0500
Subject: [Rd] Named parameters in optim()
In-Reply-To: <Pine.LNX.4.64.0603021952390.29313@gannet.stats.ox.ac.uk>
References: <44071B23.2000706@stats.uwo.ca>
	<Pine.LNX.4.64.0603021952390.29313@gannet.stats.ox.ac.uk>
Message-ID: <44074F02.30702@stats.uwo.ca>

On 3/2/2006 2:52 PM, Prof Brian Ripley wrote:
> I think the cost is small, and have just added this.

Thank you!

Duncan Murdoch

> 
> 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
>>
>>
>



[Rd] Named parameters in optim()
Duncan Murdoch