代码之家  ›  专栏  ›  技术社区  ›  N. Anderson

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

  •  0
  • N. Anderson  · 技术社区  · 7 年前

    Creating a new column to a data frame using a formula from another variable

    但是,距离公式需要来自同一列的两个值来计算一个值(距离=sqrt((x2-x1)^2+(y2-y1)^2))。如果x和y只有一列,我如何指定x1对x2和y1对y2?还有,第一点有什么问题吗,因为它之前没有一个点?(即,将有一个空的距离单元格-这是一个问题吗?)

    我知道我可以在Excel中很容易地做到这一点,但我有很多不同的数据集需要相同的处理,所以我想在R中实现自动化。

    1 回复  |  直到 7 年前
        1
  •  4
  •   ddunn801    7 年前

    您可以参考上一行。请注意,第一行没有先验坐标集。仅供参考,如果您有非常大的数据集,您可能需要使用 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)