两组点之间的距离

时间:2018-01-05 16:11:33

标签: r dataframe coordinates euclidean-distance

因此,在查看了有关stackoverflow的各种问题后,我仍然无法绕过R中的dist函数或者甚至是一般的距离矩阵。

所以我有两个带xy坐标的数据帧。

df1 <- data.frame(x = runif(3,0,50), y = runif(3,0,50))
df2 <- data.frame(x = runif(20,0,50), y = runif(20,0,50))

我想迭代第一个数据帧,对于每个点/行,我想检查第二个df中所有点的距离。 这可能是非常容易做到的,我很抱歉和惭愧,我问这个,但我现在已经尝试了几个小时。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

除了提供更多的距离指标外,pakcage proxy还允许您计算矩阵行之间的距离。

library(proxy)
df1=data.frame(x=runif(3,0,50),y=runif(3,0,50))
df2=data.frame(x=runif(20,0,50),y=runif(20,0,50))

dist(df1, df2, method = "euclidean")

#      [,1]      [,2]      [,3]     
# [1,] 14.502244 15.272563 30.266583
# [2,] 33.152003 44.574128 32.464425
# [3,] 30.112443 42.935810 12.935461
# [4,] 31.749340 38.809452 45.214138
# [5,] 22.712121 25.358099 45.593262
# [6,] 24.702575 31.332886 41.528598
# [7,] 38.244377 46.768200 46.222620
# [8,] 13.686492  1.378374 41.466495
# [9,] 30.884628 40.148856 39.286827
#[10,]  7.615178 19.138047 27.597653
#[11,] 24.898710 22.577377 51.314388
#[12,] 27.962082 39.389227 29.863587
#[13,] 26.927504 39.687474 18.898984
#[14,] 22.249277 26.451882 43.537306
#[15,] 14.632805 24.817799 30.319079
#[16,] 32.483518 41.170256 41.874111
#[17,] 16.471009 23.334594 20.552049
#[18,] 15.561002 27.706218 13.277251
#[19,] 13.375505 19.056233 24.006360
#[20,] 30.191274 42.999607 12.498551