Calcular la distancia entre puntos en diferentes marcos de datos

Estoy tratando de encontrar la distancia entre puntos en dos marcos de datos diferentes dado que tienen el mismo valor en una de sus columnas.

Me imagino que el primer paso es unir o relacionar los datos en los dos marcos de datos. Por ejemplo, hay un marco de datos A y B que tienen información de lat / long y comparten la columnaName. Tenga en cuenta que para un nombre dado, la información lat / long es diferente en cada marco de datos. Por eso quiero calcular la distancia entre ellos.

Imagino que la función final es algo así como siA$Name=B$Name luego use sus datos lat / long correspondientes para calcular la distancia entre ellos.

¿Alguna idea?

Datos de ejemplo:

A <- data.frame(Lat=1:4,Long=1:4,Name=c("a","b","c","d"))
B <- data.frame(Lat=5:8,Long=5:8,Name=c("a","b","c","d"))

Ahora quiero relacionarmeA yB para poder hacer la última pregunta siA$Name==B$Name ¿Cuál es la distancia entre ellos utilizando sus datos lat largos correspondientes?

También debo tener en cuenta que no podré hacer una distancia euclidiana directa porque los puntos ocurren en el agua y la distancia del camino entre ellos debe estar en el agua (o delimitada por alguna área). Cualquier ayuda con eso sería apreciada también.

Respuestas a la pregunta(2)

Su respuesta a la pregunta