On Fri, Jun 22, 2012 at 4:00 PM, jeka12386 <jeka12...@hotmail.co.uk> wrote: > Dear all > > I am trying to calculate the value of n using uniroot. Here is the message > I am having: > > <<< > Error in uniroot(integ, lower = 0, upper = 1000, n) : > 'interval' must be a vector of length 2 >>> > > Please would you be able to give me an indication on why I am having this > error message. > > Many thanks > > EXAMPLE BELOW: > > ## t = statistics test from t -distribution [-Inf,Inf] > ## df == degree of freedom > ###p <- p value > > diff <- 0.5 > > y <- function(t,n){ > > df <- 2*n-2 > ncp1 <- sqrt((diff^2*n)/2) > p <- 1- pt(t,df=df1) > test <- qt((1-p),df=df1,ncp=ncp1)*(1/sqrt(2)) > return(test) > } > > integ <- function(t,n){ > 1-integrate(y,lower=0,upper=3.6,n)$value -0.5 > } > > uniroot(integ,lower=0,upper=1000)
Running this I get a different error: Error in f(x, ...) : argument "n" is missing, with no default Perhaps you need to define n somewhere? It's also not clear to me what happens to the "t" argument of integ? Is it supposed to be the y of integrate? Best, Michael > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Uniroot-error-message-with-in-intergration-tp4634247.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.