[R] Pairwise Distances -- How to vectorize the loop

Timothy W. Victor
Tue, 16 Nov 2004 03:26:30 -0000

R-List,

I'm trying to compute pairwise distances among pairs of observations,
which each pair containing data from 2 groups. There are more than
100000 unique pairs. I have programmed a distance function that has
three parameters, a vector of covariates from the ith observation in
Group 1, a vector of covarites from the jth observation in Group 2, and
a weighting matrix.

I have used expand.grid to create a matrix containing all possible pairs
of Keys (unique identifiers) from Group 1 and Group 2 and a placeholder
for each pairwise distance in an effort to pre-allocate memory.

The data containing the covariates are currently in a matrix that looks
like:

x1 x2 x3 ... xn Key Group

where x1,...,xn are the covariates of interest. The Key values
correspond to the row number.

I'm trying to figure out a way to calculate all of the distances by
vectorizing a loop. I'm trying to avoid the nested-loop paradigm. I'm
sure I'm missing something quite obvious.

Any insights would be appreciated.

Best,

Tim