Re: [R] help me to debug this part of code?

From: Charles C. Berry <>
Date: Fri, 18 Apr 2008 09:51:20 -0700

On Fri, 18 Apr 2008, jinjin wrote:

> I am trying to solve the integration equation, for different values of K from
> 4 to 25, the integration is with respect to u,
> Here is the equation: gamma(k/2) / ( sqrt(k-1)*gamma((k-1)/2) ) *
> integrate(f= (1+u^2/k-1)^(-k/2), lower=0, upper= sqrt(a^2*k/(k+1-a^2)) ) =
> the similar expression as te left hand except k becomes k+1
> my code is below, I don't know why R keep telling me the syntax wrong but I
> am not clear, thanks.

First, you should format your code so that it is more readable. Use spaces and indentation.

Second, it is recommended that use an editor that features syntax highlighting to prepare your code. It will show you which parentheses and braces match. And if it features automatic indentation, this will give you clues when the nesting of an expression or arglist has gone awry.

Third, read the error messages that R provides and try to understand why R is telling you "unexpected symbol", etc. Often, an error immediately preceeded the point at which R got confused.

If all this fails, break apart your code into single expressions (or pieces you ***think*** are valid expressions) and try to evaluate them. For example,


is correctly parsed. It only fails for me because I tried to evaluate it without providing a value for 'k'.

HTH, Chuck

> f<-function(u,k){(1+u^2/(k-1))^(-k/2)}
> g<-function(u,k){(1+u^2/k)^(-(k+1)/2)}
> for(k in 4:25){
> out<-uniroot(function(a){
> m<-exp(lgamma(k/2)-lgamma((k-1)/2))*1/sqrt(k-1)
> n<-exp(lgamma((k+1)/2)-lgamma(k/2)*1/sqrt(k)
> m*integrate(f,lower=0,upper=sqrt(a^2*(k-1)/(k-a^2)),rel.tol=.Machine$double.eps^0.25)
> -n*integrate(g,lower=0,upper=sqrt(a^2*k/(k+1-a^2)),rel.tol=.Machine$double.eps^0.25)
> }
> lower=1.4, upper=2)
> print(unlist(out))}
> --
> View this message in context:
> Sent from the R help mailing list archive at
> ______________________________________________
> mailing list
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E	            UC San Diego La Jolla, San Diego 92093-0901 mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Fri 18 Apr 2008 - 18:03:30 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 18 Apr 2008 - 18:30:29 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive