reb*_*ter 3 r euclidean-distance
我有由X和Y坐标对组成的大型数据框,并希望计算连续坐标之间的欧几里得距离(最小大小约为2000对坐标)。
因此,我想计算第1行到第2行,第2行到第3行,第3行到第4行等的距离。 这个问题很好地显示了如何计算轨迹数据的第一个点与最后一个点之间的欧几里得距离,但是我的数据是更接近:
dff <- structure(list(A = c(0L, 0L, 0L, 0L, 0L, 0L), T = 0:5, X = c(668L, 670L, 672L, 674L, 676L, 678L), Y = c(259L, 259L, 259L, 259L, 259L, 260L), V = c(NA, 0, 0, 0, 0, 0)), .Names = c("A", "T", "X", "Y", "V"), row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
似乎应该有一种方法可以创建一个循环来执行此操作,但是我不确定如何对它进行下标。使用dist()这种大小的数据集在计算上要求很高,无论如何我也不确定如何提取与对角线不一的矩阵元素。
就像是
sqrt(diff(dff$X)^2 + diff(dff$Y)^2)
Run Code Online (Sandbox Code Playgroud)
应该管用。这里的关键是diff函数,它给出向量中连续项之间的差异
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |