[R] distance between two matrices

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Tue Jan 27 21:00:59 CET 2004


Hi all,
   Say I have a matrix A with dimension m x 2 and matrix B with 
dimension n x 2. I would like to find the row in A that is closest to 
the each row in B. Here's an example (using a loop):

set.seed(1)
A <- matrix(runif(12), 6, 2) # 6 x 2
B <- matrix(runif(6), 3, 2)  # 3 x 2
m <- vector("numeric", nrow(B))
for(j in 1:nrow(B)) {
   d <- (A[, 1] - B[j, 1])^2 + (A[, 2] - B[j, 2])^2
   m[j] <- which.min(d)
}

All I need is m[]. I would like to accomplish this without using the 
loop if possible, since for my real data n > 140K and m > 1K. I hope 
this makes sense.

Thanks,
Sundar




More information about the R-help mailing list