从R

时间:2017-05-11 02:18:14

标签: r coordinates euclidean-distance distance-matrix

我有一个csv文件,其中包含超过2000个农场的坐标位置列表,具有以下结构;

FarmID | Latidue | Longitude |  
------ |---------|-----------|  
   1   |    y1   |     x1    |
   2   |    y2   |     x2    |
   3   |    y3   |     x3    |

.......我想根据这些数据创建欧几里德距离矩阵,显示所有农场对之间的距离,以便得到如下结果矩阵:

     1     |    2    |     3     |
-----------|---------|-----------|
1    0     |  2.236  |   3.162   |
2  2.236   |    0    |   2.236   |
3  3.162   |  2.236  |     0     |

在数据框中有更多的农场和坐标,我需要能够以某种方式迭代所有农场对,并创建一个像上面那样的距离矩阵。任何有关如何在R中执行此操作的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

这是一个简单的例子:

farms <- data.frame(lat=runif(3), lng=runif(3))
dist(farms, diag=T, upper=T)

          1         2         3
1 0.0000000 0.9275424 0.6092271
2 0.9275424 0.0000000 0.3891079
3 0.6092271 0.3891079 0.0000000