Thank you very much. Yes, that was the problem, partial matching. I saw a warning about that in integrate and some discussion from 1999 in the archives and so added the m0 for integrate but somehow I wasn't bright enough to see that I had the same problem in uniroot.
Sorry about no working example, but I'm not sure what I could have added, if I understand what you mean by working example, because my function wasn't working. best, ken Quoting Sundar Dorai-Raj <[EMAIL PROTECTED]>: > > > Ken Knoblauch wrote on 3/9/2005 10:27 AM: > > Hi, > > > > I'm trying to calculate the value of the variable, dp, below, in the > > argument to the integral of dnorm(x-dp) * pnorm(x)^(m-1). This > > corresponds to the estimate of the sensitivity of an observer in an > > m-alternative forced choice experiment, given the probability of > > a correct response, Pc, a Gaussian assumption for the noise and > > no bias. The function that I wrote below gives me an error: > > > > Error in f(x, ...) : recursive default argument reference > > > > The problem seems to be at the statement using uniroot, > > because the furntion est.dp works fine outside of the main function. > > I've been using R for awhile but there are still many nuances > > about the scoping and the use of environments that I'm weak on > > and would like to understand better. I would appreciate any > > suggestions or solutions that anyone might offer for fixing > > my error. Thank you. > > > > dprime.mAFC <- function(Pc, m) { > > est.dp <- function(dp, Pc = Pc, m = m) { > > > > pr <- function(x, dpt = dp, m0 = m) { > > dnorm(x - dpt) * pnorm(x)^(m0 - 1) > > } > > > > Pc - integrate(pr, lower = -Inf, upper = Inf, > > dpt = dp, m0 = m)$value > > } > > > > dp.res <- uniroot(est.dp, interval = c(0,5), Pc = Pc, m = m) > > dp.res$root > > } > > > > Ken, > > Look at the argument list for ?uniroot and think "partial matching". > You're "m" is being interpretted for "maxiter". Simply change to > > dp.res <- uniroot(est.dp, interval = c(0,5), Pc = Pc, m0 = m) > > and in other places for consistency and the error goes away. Of course, > since you gave no working example, I'm not sure if other errors are > present that I'm missing. > > --sundar > ____________________ Ken Knoblauch Inserm U 371 Cerveau et Vision 18 avenue du Doyen Lepine 69675 Bron cedex France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: 06 84 10 64 10 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html