Hi the list,

I need to write some efficient distances function, so I read the code for the Euclidean distance. I do not understand the purpose of the line 11 : if x[i] and y[i] are not NA (line 9), can dev be NA ?

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.

Reply via email to