From: [EMAIL PROTECTED] > Andrew McFadden <[EMAIL PROTECTED]> writes: > > > I am trying to determine the distances between two datasets > of x and y > > points. > > This can be done efficiently in the package 'spatstat'. > > library(spatstat) > crossdist(x1, y1, x2, y2) > > where x1, y1 are vectors of coordinates for the first set of points > and x2, y2 for the second set. See help(crossdist.default) > > This is executed in C and is faster than using outer() or apply().
The margin may not be as large as you imagine: crossdist2 <- function(x1, y1, x2, y2) { c1 <- complex(real=x1, imaginary=y1) c2 <- complex(real=x2, imaginary=y2) dist <- outer(c1, c2, function(z1, z2) Mod(z1-z2)) dist } R> set.seed(17) R> n <- 1000 R> x1 <- rnorm(n) R> y1 <- rnorm(n) R> x2 <- rnorm(n) R> y2 <- rnorm(n) R> system.time(d2 <- crossdist2(x1, y1, x2, y2)) user system elapsed 1.03 0.09 1.17 R> library(spatstat) R> system.time(d1 <- crossdist2(x1, y1, x2, y2)) user system elapsed 1.08 0.03 1.12 R> all.equal(d1, d2) [1] TRUE Andy > The result is a matrix giving the distance between each pair of points > (the first point in the first dataset and the second point in > the second > set). If these datasets are large, you can of course run into > trouble with > the size of this matrix. > > If you just wanted to find the distance to the *nearest* point > (or identify which point is nearest), use the function nncross(). > > Adrian Baddeley > > ______________________________________________ > 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. > > > ------------------------------------------------------------------------------ Notice: This e-mail message, together with any attachme...{{dropped:15}} ______________________________________________ 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.