[R] Uniroot error message with in intergration

R. Michael Weylandt michael.weylandt at gmail.com
Sat Jun 23 01:05:34 CEST 2012


On Fri, Jun 22, 2012 at 4:00 PM, jeka12386 <jeka12386 at 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 at 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.



More information about the R-help mailing list