计算两个 类 latlong 点之间的距离
Calculating distance between two classes of latlong points
我在 R 中有一系列经纬度坐标,分为两个人:
name lat long
A -28.63784 28.69085
A -28.65366 28.70843
A -28.80918 28.94223
B -26.71335 22.80713
B -26.75022 20.58426
B -34.37791 20.51215
如何计算一个人的坐标与另一个人的坐标之间的距离,而不是与自己的坐标之间的距离?我在这里查看了类似的问题,但我看不到任何可以为我进行分组的内容。
谢谢
首先创建两个lon/lat数据框,一个用于个人A
,一个用于B
:
locationsA <- subset(d, name == "A", select = c("long", "lat"))
locationsB <- subset(d, name == "B", select = c("long", "lat"))
然后 fields 包中的 rdist.earth 函数可以计算所有配对的距离矩阵:
library(fields)
dists <- rdist.earth(locationsA, locationsB)
例如,对于您显示的六行,这些距离是(以英里为单位):
[,1] [,2] [,3]
[1,] 384.1700 513.2758 624.3275
[2,] 385.5346 514.5599 624.4023
[3,] 402.4771 530.8293 628.1450
我在 R 中有一系列经纬度坐标,分为两个人:
name lat long
A -28.63784 28.69085
A -28.65366 28.70843
A -28.80918 28.94223
B -26.71335 22.80713
B -26.75022 20.58426
B -34.37791 20.51215
如何计算一个人的坐标与另一个人的坐标之间的距离,而不是与自己的坐标之间的距离?我在这里查看了类似的问题,但我看不到任何可以为我进行分组的内容。
谢谢
首先创建两个lon/lat数据框,一个用于个人A
,一个用于B
:
locationsA <- subset(d, name == "A", select = c("long", "lat"))
locationsB <- subset(d, name == "B", select = c("long", "lat"))
然后 fields 包中的 rdist.earth 函数可以计算所有配对的距离矩阵:
library(fields)
dists <- rdist.earth(locationsA, locationsB)
例如,对于您显示的六行,这些距离是(以英里为单位):
[,1] [,2] [,3]
[1,] 384.1700 513.2758 624.3275
[2,] 385.5346 514.5599 624.4023
[3,] 402.4771 530.8293 628.1450