Skip to content

NaNS Error Message

5 messages · Blaser Nello, Berend Hasselman, Sahana Srinivasan +1 more

#
Only positive values of n are allowed into the loop... 
More importantly, is n ever larger than 52??? Because that results in nk2<0 (for k=1) and undefined gamma(nk2). Same goes for sn, if n>100. 
Next time you may also want to write a reproducible example!

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Sahana Srinivasan
Sent: Dienstag, 26. M?rz 2013 16:25
To: r-help at r-project.org
Subject: [R] NaNS Error Message

Hi,
I'm using R to do a series of calculation and I have gotten several warnings that say "NaNS produced". Whatever I could read on line gives me an idea that this warning is produced when the number is use is a negative log or otherwise mathematically problematic.
I'm getting this error while using factorial() and gamma () on strictly positive numbers (always greater than zero).
Here is a snippet of my code:
k goes from 1 to a positive limit.
S is always 100.
Only positive values of n are allowed into the loop.

if(n>0)
{
while(k<=lim)
       {

         sn<-(S-n);snfact<-gamma(sn);
         sn2<-(2-n+S);sn2gam<-gamma(sn2);

         num<-(ngam*sn2gam);


         nk2<-(2+k-(2*n)+S);
         nk2gam<-gamma(nk2);
         den<-(k*nk2gam);
         prob<-(num/den);

         sum<-(as.numeric((k*prob))+sum);

         k<-k+1;
       }
}

The error message  received for every instance of this loop is :
In gamma(sn) : NaNs produced
In gamma(sn2) : NaNs produced
In gamma(nk2) : NaNs produced


Where am I going wrong?
Thanks for your help :)


______________________________________________
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.
#
On 26-03-2013, at 16:25, Sahana Srinivasan <sahanasrinivasan.91 at gmail.com> wrote:

            
This not reproducible code.
Where is ngam?
Where is k set to 1?
What value does n have?

Berend
#
Hi

If you can not share information you need to solve your problems yourself.

you can trace code by some print statements

sn<-(S-n);snfact<-gamma(sn); print(sn)

or use 
?debug

as Sarah pointed out, n is probably greater than 100 and in that case gamma(sn) results in NaN.

Regards
Petr