[英]Calculating distance between a series of x-y coordinates in R
我有一个xy坐标的数据框,我想计算连续点之间的距离。 我的问题是,我不知道如何使用另一列中的多个点来计算新列。
我知道如何计算新列,如此处所述: 使用另一个变量的公式为数据框创建新列
但是,距离公式需要来自同一列的两个值来计算一个值(距离= sqrt((x2-x1)^ 2 +(y2-y1)^ 2))。 如果我只有x和y的一列,如何指定x1 vs x2和y1 vs y2? 另外,由于第一点之前没有要点,所以会有任何问题吗? (即,将有一个空的距离单元-是一个问题吗?)
我知道我可以很容易地在Excel中完成此操作,但是我有很多不同的数据集需要相同的处理,因此我想在R中自动执行。
您可以参考上面的行。 请注意,第一行没有设置先前的坐标。 仅供参考,如果您的数据集非常大,则可能需要使用data.table
和shift
函数。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.