From: Ken Knoblauch <knoblauch_at_lyon.inserm.fr>

Date: Thu 10 Mar 2005 - 06:19:30 EST

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 Received on Thu Mar 10 23:33:36 2005

Date: Thu 10 Mar 2005 - 06:19:30 EST

best,

Quoting Sundar Dorai-Raj <sundar.dorai-raj@pdf.com>:

*>
**>
*

> 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 Received on Thu Mar 10 23:33:36 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:30:42 EST
*