我有一个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中执行此操作的帮助将不胜感激。谢谢!
答案 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