繁体   English   中英

计算R中一系列xy坐标之间的距离

[英]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.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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM