A side note: The NA vs NaN does not seem to play a role here, because: #define both_non_NA(a,b) (!ISNAN(a) && !ISNAN(b))
So, it is the same type of test used in line 9 and in line 11. /Henrik On Fri, Jan 22, 2010 at 9:52 AM, Christophe Genolini <cgeno...@u-paris10.fr> wrote: > Thanks both of you. > >> >> > Inf - Inf >> [1] NaN > > So isn't the line 9 useless ? If either x[i] or y[i] are NA, then dev will > be NA and !ISNAN(dev) will detect it... > Sothe loop cool be > > 8. for(i = 0 ; i < taille ; i++) { > 10. dev = (x[i] - y[i]); > 11. if(!ISNAN(dev)) { > 12. dist += dev * dev; > 13. count++; > 15. } > 16. } > > No ? > > Christophe >> >> Duncan Murdoch >>> >>> Christophe >>> >>> >>> #define both_FINITE(a,b) (R_FINITE(a) && R_FINITE(b)) >>> #define both_non_NA(a,b) (!ISNAN(a) && !ISNAN(b)) >>> >>> 1. static double R_euclidean2(double *x, double *y, int taille) >>> 2. { >>> 3. double dev, dist; >>> 4. int count, i; >>> 5. >>> 6. count= 0; >>> 7. dist = 0; >>> 8. for(i = 0 ; i < taille ; i++) { >>> 9. if(both_non_NA(x[i], y[i])) { >>> 10. dev = (x[i] - y[i]); >>> 11. if(!ISNAN(dev)) { >>> 12. dist += dev * dev; >>> 13. count++; >>> 14. } >>> 15. } >>> 16. } >>> 17. if(count == 0)return NA_REAL; >>> 18. if(count != taille) dist /= ((double)count/taille); >>> 19. return sqrt(dist); >>> 20.} >>> >>> ______________________________________________ >>> 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. > ______________________________________________ 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.