我有一个人们的地理坐标数据集,如下所示:
Person Latitude Longitude
1 46.0614 -23.9386
2 48.1792 63.1136
3 59.9289 66.3883
4 42.8167 58.3167
5 43.1167 63.25
我计划使用 R 中的 geosphere 包计算二元级别的地理接近度。为了实现这一点,我需要创建一个如下所示的数据集:
Person1 Person2 LatitudeP1 LongitudeP1 LatitudeP2 LongitudeP2
1 2 46.0614 -23.9386 48.1792 63.1136
1 3 46.0614 -23.9386 59.9289 66.3883
1 4 46.0614 -23.9386 42.8167 58.3167
1 5 46.0614 -23.9386 43.1167 63.25
2 3 48.1792 63.1136 59.9289 66.3883
2 4 48.1792 63.1136 42.8167 58.3167
2 5 48.1792 63.1136 43.1167 63.25
3 4 59.9289 66.3883 42.8167 58.3167
3 5 59.9289 66.3883 43.1167 63.25
4 5 42.8167 58.3167 43.1167 63.25
因此,结果数据对于数据集中的每个可能的二元组都有一行,并且包括二元组中两个个体的坐标。“LatitudeP1”和“LongitudeP1”是“Person1”在成对中的坐标,“LatitudeP2”和“LongitudeP2”是“Person2”在成对中的坐标。此外,哪个 ID 列为 Person1 还是 Person2 并不重要,因为地理距离不是有向关系。