【发布时间】:2016-10-31 04:34:12
【问题描述】:
我有 2 个单元格数据集(每个单元格都有多行(单个单元格),x,y 坐标作为列)我想找到数据集 A 中的每个单元格到数据集 B 中的任何单元格的最小距离。
示例 DSA = 0,0 0,1 1,0 DSB 设置 B = 2,2
为了找到从 A 到 B 的单元格的距离 (d),我这样做了
ax <- DS1$X
ay <- DS1$Y
bx <- DS2$X
by <- DS2$Y
D <- c(sqrt((ax-bx)^2 + (ay-by)^2))
D
[1] 2.828427 2.236068 2.236068
所以它确实给了我我需要的东西,但是如果不是 DSB 有多个点,我就会遇到问题
我是否需要添加一个循环,以便它通过所有 BSB 值尝试所有 DSA 值?
就目前而言,它将仅对 DSB 中的第一个点执行 DSA 中的第一个点,然后仅对 DSB 中的第二个值执行 DSA 的第二个值。我希望它通过 DSB 的所有值来做 DSA 的第一个值,然后只返回这两个数字中最小的一个,并不断重复所有 DSA 的值。
【问题讨论】:
标签: r coordinates distance nearest-neighbor euclidean-distance