[R] distance between consecutive points

William Dunlap wdunlap at tibco.com
Wed Feb 16 04:24:34 CET 2011


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Darcy Webber
> Sent: Tuesday, February 15, 2011 4:10 PM
> To: r-help at r-project.org
> Subject: [R] distance between consecutive points
> 
> Dear R users,
> 
> I have two coloumns of data, say x and y, referring to a list of
> points in 2D space. I am trying to develop a code that will give me
> the distances (using Pythagoras) between consecutive points (xi,yi)
> and (xi+1,yi+1). So far I have come up with the following:
> 
> for (i in 1:length(x)) d<-sqrt((x[i+1]-x[i])^2+(y[i+1]-y[i])^2)

You want to assign to d[i] (where d is a preallocated numeric
vector of length length(x)-1), not d, so you save all the
distances and you don't want to do this for i==length(n),
as there is no x[i+1] then.

Here is more idiomatic R code that does it with a loop:
   > hypot <- function(x,y)sqrt(x^2 + y^2) # must be a built-in for this
   > d <- hypot( diff(x), diff(y) )
   > d
   [1] 0.01

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 
> 
> For example, if I use the two points (note, I have hundreds 
> of points for x,y)
> x<-c(64.59,64.60)
> y<-c(-179.28,-179.28)
> 
> d should be 0.01.
> 
> But it just doesn't give me the correct answer and I can't figure out
> why. Any help would be much appreciated.
> 
> Cheers,
> D'Arcy
> 
> ______________________________________________
> 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.
> 



More information about the R-help mailing list