[R] distance between two matrices
"Jens Oehlschlägel"
joehl at gmx.de
Wed Jan 28 11:05:12 CET 2004
Sundar,
Have a look at "knn1" from package "class".
As I understand what you want is
as.integer( knn1(train=A, test=B, cl=1:nrow(A)) )
Best regards
Jens Oehlschlägel
> 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.
--
More information about the R-help
mailing list