[R] Better way to find distances between points in a set?

Charles C. Berry cberry at tajo.ucsd.edu
Wed Dec 10 05:52:42 CET 2008


The 'better way' to do almost anything starts with a reading of the 
_posting guide_, which reminds you to

 	Do your homework before posting [Reasons whyfor deleted]]


 	    * Do help.search("keyword") and apropos("keyword") with different
 			keywords (type this at the R prompt).

 	[other homework items deleted]

So, to start with you would have tried:

 	help.search('distance')

HA! This leads to

 	dist {stats}		Distance Matrix Computation

Well, doesn't that sound promising??

> alldist3 <- as.matrix( dist( cv ) )
> which( alldist3 == max( alldist3 ), arr.ind=TRUE )


Oh yes, if you are too lazy to look up the posting guide URL, the function 
help.request() will open it for you when you admit that you haven't yet 
read it (or lead you thru the further steps to prepare a question to this 
list if you say that you have read it).

HTH,

Chuck


On Tue, 9 Dec 2008, Carl Witthoft wrote:

> I was playing around a bit to see how I could find the two points in a set of 
> points (or ordered pairs)  furthest from each other.
>
> Here's what I did:
> 1) created a Nrow by 2col matrix, so each row contains an x,y coordinate 
> pair.
>
> 2) fed the matrix to a nested mapply (cv is my matrix):
>
> mapply(function(k,l) mapply(function(x,y,a,b)
> + sqrt((x-a)^2+(y-b)^2),cv[,1],cv[,2],k,l),cv[,1],cv[,2])->alldist
>
> Then I just did which.max(alldist) and found the original two points by 
> figuring out what row, col the results of which.max referred to.
>
> So, what's a better, or cleaner way to do all this?  That is, is there a 
> function in some package that will do anything like my nested mapply thing, 
> and is there a better tool than which.max for locating a position in a 
> matrix?
>
> thanks
> Carl
>
> ______________________________________________
> R-help at 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.
>
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list