Re: [R] Error using a data frame as the "start" parameter in mle()

From: Spencer Graves <>
Date: Mon 10 Oct 2005 - 08:15:30 EST

          I will attempt a brief comment on this post, as I've seen no replies.   It's difficult to comment on this, as you do not really provide enough information to permit someone like me to understand your problem. Only one portion of this problem is the fact that I can't find your function "mle" in one of the standard libraries, and I don't know if it is part of a contributed library or something you wrote.

          However, I've encountered problems roughly like what you describe, and I've solved them in three different ways:

          (a) Making a local copy inside the wrapper function and then pass to the standard function like "mle" only arguments locally defined.

          (b) Using "assign" with (I think) something like "pos=0". I don't remember exactly for that, and the help file for "assign" and several searches with RSiteSearch didn't help me. If you want to try this, I suggest you look for information on "lexical scoping" with "assign", etc.

          (c) Passing additional references via "..." if "mle" has such in its function definition.

          If you still would like more help from this group, PLEASE do read the posting guide ( I believe people who follow that guide on average get more useful answers quicker.

	  Viel Glück!
	  spencer graves

Coryn Bailer-Jones wrote:

> Dear R-Users,
> I am trying to use mle() to optimize two (or more) parameters, but I want
> to specify those parmeters in a data frame rather than having to spell
> them out separately in the "start" variable of mle().
> My call is

>>mle(negll, start=list(aps=init), fixed=list(measphot=newphot,

> formod=formod, Nbands=Nbands), method="BFGS")
> where negll is a function I have written which uses the function
> predict.loess(). negll works fine when called directly. The parameter I am
> trying to optimize, "aps", is a data frame containing two parameters, e.g.

> teff logg
> 1 8000 4.5
> When I run mle I get the following error message
> Error in predict.loess(formod[[band]], aps) :
> Argument "aps" is missing, with no default
> As negll does work fine, I presume I am incorrectly passing "aps" into
> mle(). Note that mle() works fine if I rewrite negll to work on a scalar
> "aps" and then I use start=list(aps=500), for example. Can anyone help me
> with this?
> Incidentally, I am only using a data frame for "aps" because I am using
> loess(), and this seems to require a formula with named variables in a
> data frame (here "logg" and "teff"). I can't get it work with arrays:
>>temp <- loess(formula = photd[, band] ~ gridaps[, 1] * gridaps[, 2])
>>predict(temp, c(4,8000))

> Error in predict.loess(temp, c(4, 8000)) :
> newdata does not contain the variables needed
> Thanks in advance for any clues.
> Coryn.
> ---------------------------------------------------------------------------
> Coryn Bailer-Jones
> Max-Planck-Institut fuer Astronomie
> Koenigstuhl 17 tel: +49 6221 528-224 (direct)
> D-69117 Heidelberg +49 6221 528-0 (reception)
> Germany fax: +49 6221 528-246
> ______________________________________________
> mailing list
> PLEASE do read the posting guide!
Spencer Graves, PhD
Senior Development Engineer
PDF Solutions, Inc.
333 West San Carlos Street Suite 700
San Jose, CA 95110, USA <>
Tel:  408-938-4420
Fax: 408-280-7915

______________________________________________ mailing list
PLEASE do read the posting guide!
Received on Mon Oct 10 08:20:32 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 18:33:47 EST