[R] Join data by minimum distance

Roy Mendelssohn Roy.Mendelssohn at noaa.gov
Fri Sep 12 21:19:22 CEST 2008

Hi Monica:

On Sep 12, 2008, at 11:59 AM, Monica Pisica wrote:

> I am wondering if there is a function which will do a join between 2  
> data.frames by minimum distance, as it is done in ArcGIS for  
> example. For people who are not familiar with ArcGIS here it is an  
> explanation:
> Suppose you have a data.frame with x, y, coordinates called track,  
> and a second data frame with different x, y coordinates and some  
> other attributes called classif. The track data.frame has a  
> different number of rows than classif. I want to join the rows from  
> classif to track in such a way that for each row in track I add only  
> the row from classif that has coordinates closest to the coordinates  
> in the track row (and hence minimum distance in between the 2 rows),  
> and also add a new column which will record this minimum distance.  
> Even if the coordinates in the 2 data.frames have same name, the  
> values are not identical between the data.frames, so a merge by  
> column is not what I am after.
> I did an R Site Search but nothing related to this particular type  
> of join emerged.

Have you looked at the package "field".  It has distance functions.   
You would then have to do a little programming to find the minimum  
distance and add the columns.


-Roy M.

"The contents of this message do not reflect any position of the U.S.  
Government or NOAA."
Roy Mendelssohn
Supervisory Operations Research Analyst
Environmental Research Division
Southwest Fisheries Science Center
1352 Lighthouse Avenue
Pacific Grove, CA 93950-2097

e-mail: Roy.Mendelssohn at noaa.gov (Note new e-mail address)
voice: (831)-648-9029
fax: (831)-648-8440
www: http://www.pfeg.noaa.gov/

"Old age and treachery will overcome youth and skill."
"From those who have been given much, much will be expected"

More information about the R-help mailing list