通过R计算从一个点到另一个点的距离

问题描述 投票:0回答:1

我想计算从一个点到另一个点的距离。从下面的矩阵中,您可以看到到所有点的距离是同时计算的。但我只想指出其余一点。如何在公式中定义?例如,我想知道从属性6到其他19个属性的距离,所以我们只有一条线。

library(geosphere)
df<-structure(list(Latitude = c(-23.8, -23.8, -23.9, -23.9, -23.9,  -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, 
+ -23.9, -23.9, -23.9, -23.9, -23.9), Longitude = c(-49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.7, 
+ -49.7, -49.7, -49.7, -49.7, -49.6, -49.6, -49.6, -49.6), Production = c(526, 350, 526, 469, 285, 175, 175, 350, 350, 175, 350, 175, 175, 364, 
+ 175, 175, 350, 45.5, 54.6)), class = "data.frame", row.names = c(NA, -19L))
coordinaties<-df[,1:2]
d<-as.dist(distm(coordinaties[,2:1]))
data.matrix(d)

    1        2        3        4        5        6        7        8
1      0.00     0.00 11075.61 11075.61 11075.61 11075.61 11075.61 11075.61
2      0.00     0.00 11075.61 11075.61 11075.61 11075.61 11075.61 11075.61
3  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
4  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
5  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
6  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
7  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
8  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
9  11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
10 11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
11 15048.01 15048.01 10183.02 10183.02 10183.02 10183.02 10183.02 10183.02
12 15048.01 15048.01 10183.02 10183.02 10183.02 10183.02 10183.02 10183.02
13 15048.01 15048.01 10183.02 10183.02 10183.02 10183.02 10183.02 10183.02
14 15048.01 15048.01 10183.02 10183.02 10183.02 10183.02 10183.02 10183.02
15 15048.01 15048.01 10183.02 10183.02 10183.02 10183.02 10183.02 10183.02
16 11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
17 11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
18 11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
19 11075.61 11075.61     0.00     0.00     0.00     0.00     0.00     0.00
          9       10       11       12       13       14       15       16
1  11075.61 11075.61 15048.01 15048.01 15048.01 15048.01 15048.01 11075.61
2  11075.61 11075.61 15048.01 15048.01 15048.01 15048.01 15048.01 11075.61
3      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
4      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
5      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
6      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
7      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
8      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
9      0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
10     0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
11 10183.02 10183.02     0.00     0.00     0.00     0.00     0.00 10183.02
12 10183.02 10183.02     0.00     0.00     0.00     0.00     0.00 10183.02
13 10183.02 10183.02     0.00     0.00     0.00     0.00     0.00 10183.02
14 10183.02 10183.02     0.00     0.00     0.00     0.00     0.00 10183.02
15 10183.02 10183.02     0.00     0.00     0.00     0.00     0.00 10183.02
16     0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
17     0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
18     0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
19     0.00     0.00 10183.02 10183.02 10183.02 10183.02 10183.02     0.00
         17       18       19
1  11075.61 11075.61 11075.61
2  11075.61 11075.61 11075.61
3      0.00     0.00     0.00
4      0.00     0.00     0.00
5      0.00     0.00     0.00
6      0.00     0.00     0.00
7      0.00     0.00     0.00
8      0.00     0.00     0.00
9      0.00     0.00     0.00
10     0.00     0.00     0.00
11 10183.02 10183.02 10183.02
12 10183.02 10183.02 10183.02
13 10183.02 10183.02 10183.02
14 10183.02 10183.02 10183.02
15 10183.02 10183.02 10183.02
16     0.00     0.00     0.00
17     0.00     0.00     0.00
18     0.00     0.00     0.00
19     0.00     0.00     0.00

谢谢!

r distance
1个回答
0
投票

请参见?distm:您可以使用两组点:

distm(coordinaties[6,2:1],coordinaties[-6,2:1])

         [,1]     [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]    [,10]    [,11]    [,12]
[1,] 11075.61 11075.61    0    0    0    0    0    0    0 10183.02 10183.02 10183.02
        [,13]    [,14] [,15] [,16] [,17] [,18]
[1,] 10183.02 10183.02     0     0     0     0
© www.soinside.com 2019 - 2024. All rights reserved.