From bolker at zoology.ufl.edu  Wed Aug 13 17:45:34 2008
From: bolker at zoology.ufl.edu (Ben Bolker)
Date: Wed, 13 Aug 2008 11:45:34 -0400
Subject: [Rd] messing with ...
Message-ID: <48A3019E.5080209@zoology.ufl.edu>


   I'm looking for advice on manipulating parameters that
are going to be passed through to another function.

   Specifically, I am working on my version of "mle",
which is a wrapper for optim (among other optimizers).
I would prefer not to replicate the entire argument
list of optim(), so I'm using ... to pass extra arguments
through.

   However:
     the starting values are specified as a list,
which means that users can potentially specify them
in any order (or at least that's the way it works
now -- one solution to the problem I'm about to state
is to insist that they specify the parameters in the
same order as they are given in the arguments of
the objective function).
   However, there are other arguments (lower, upper,
control$parscale, control$ndeps) that should all
be in the same order as the objective function
definition by the time they get to optim()).  I can
think of a few solutions:

  (1) make the user specify them all in the right order (ugh)
  (2) add all of them as explicit parameters to my function
so that I can rearrange them appropriately (ugh)
  (3) mess with the ... argument before it gets passed
through to optim (impossible?)
  (4) capture ... as arglist <- list(...), manipulate the arguments
as necessary, then pass them along to optim as
do.call("optim",arglist) (ugh but maybe the best solution?)

   any thoughts?

  thanks

   Ben Bolker


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20080813/e84ce625/attachment.bin>


[Rd] messing with ...
Ben Bolker