[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