计算R中一系列x-y坐标之间的距离

时间:2017-09-23 15:24:14

标签: r distance

我有一个x-y坐标的数据框,我想计算连续点之间的距离。我的问题是,我不知道如何使用其他列中的多个点来计算新列。

我知道如何计算这里涵盖的新列:Creating a new column to a data frame using a formula from another variable

然而,距离公式需要来自同一列的两个值来计算值(距离= sqrt((x2-x1)^ 2 +(y2-y1)^ 2))。如果我只有x和y的单列,如何指定x1 vs x2和y1 vs y2?此外,第一点是否会有任何问题,因为它之前没有任何意义? (即将有一个空的距离单元 - 这是一个问题吗?)

我知道我可以很容易地在Excel中执行此操作,但我有很多不同的数据集需要相同的处理,所以我想在R中自动化它。

1 个答案:

答案 0 :(得分:1)

您可以参考上面的行。请注意,第一行没有先前的坐标集。仅供参考,如果您拥有非常大的数据集,则可能需要使用data.tableshift函数。

n <- 10

df2 <- data.frame(x = rnorm(n = n), y = rnorm(n = n), dist = as.numeric(NA))

df2$dist[2:n] <- sqrt((df2$x[2:n] - df2$x[1:n-1]) ^ 2 + (df2$y[2:n] - df2$y[1:n-1]) ^ 2)