Calcular las distancias entre todos los puntos de un diagrama en R

En ocasiones puede interesarnos calcular las distancias entre todos los puntos de un diagrama de dispersión.  Y esto en R es muy fácil hacerlo. Pero la pregunta es,  ¿cuándo nos puede interesar calcular las distancias entre todos los puntos de un diagrama de dispersión en R? Pues una de las respuestas puede ser si el diagrama de dispersión, o scatterplot, representa un área geográfica de la superficie terrestre. En este supuesto, cada uno de los puntos son coordenadas XY de varios elementos geográficos. Y lo que queremos es calcular las distancias entre todos ellos (en kilómetros, por ejemplo).

Quiero leer...

Calcular las distancias entre todos los puntos de un diagrama de dispersión en R

Antes de empezar, vamos a poner unos datos de ejemplo creados aleatoriamente, donde un vector se va a llamar x y el otro y. Como vemos, está compuesto por 7 observaciones, que podríamos interpretar como 7 coordenadas. Por ejemplo, las coordenadas (1,4), (2,5), (3,7)…

[sourcecode lang=»r»] x <- c(1, 2, 3, 6, 4, 3, 6) y <- c(4, 5, 7, 8, 4, 9, 0)
[/sourcecode]

Vemos el diagrama de dispersión o scatterplot de los datos

Para ello, ejecutamos el siguiente comando, donde le indicamos que nos identifique los puntos con sus números respectivos.

[sourcecode lang=»r»]scatterplot(x, y, reg.line=FALSE, smooth=FALSE, spread=FALSE, id.method=’mahal’, id.n = 20, boxplots=FALSE, span=0.5, ellipse=FALSE)[/sourcecode]

Y vemos a continuación su resultado:Calcular las distancias entre todos los puntos de un diagrama de dispersión en RMedimos ahora las distancias entre todos los puntos

Ahora queremos saber cuál es la distancia entre el punto 1 y el 2, entre el 1 y el 3, entre el 1 y el 4, y así sucesivamente hasta la distancia entre el punto 6 y el punto 7.

En R tenemos una función que nos lo hace rapidísimo y nos lo muestra como una matriz de datos:

[sourcecode lang=»r»]dist(cbind(x,y))[/sourcecode]

En esta función solo tenemos que añadir cuáles son los valores de la X y de la Y, que en nuestro caso se llaman x e y. Y el resultado es el siguiente:

dist(cbind(x,y))

 

 

 

 

Como vemos, y si nuestra unidad de medida fueran kilómetros, tendríamos que entre el punto 1 y el 2 existen 1.41 km de distancia, entre el 1 y el 2 habrían 2.24 km, entre el 1 y el 4 habrían 6.40 km, y así sucesivamente.

Como veis, calcular las distancias entre todos los puntos de un diagrama en R es muy fácil. Aquí podréis conocer cuál considero que es la mejor interfaz gráfica de R, y aquí un curso fabuloso 100% online y en español. Este curso lo he hecho yo mismo utilizando esa interfaz gráfica.

2 comentarios en «Calcular las distancias entre todos los puntos de un diagrama en R»

Deja un comentario