Thanks again, Sundar
Prof Brian Ripley wrote:
Sounds like knn classification. See function knn1 in package class.
knn(A, B, 1:nrow(A))
gives the same answers as your loop code, and is just a carefully tuned C equivalent.
There are faster ways to do this by preprocessing set A discussed e.g. in my PRNN book but your numbers took only 11s on my PC.
On Tue, 27 Jan 2004, Sundar Dorai-Raj wrote:
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
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html