R studio 上的瞬时速度

Instantaneous velocity on R studio

(Rstudio) 假设我有一个数据集:

# Circle  X    Y
1 A      21   8 
2 A      32   17
3 A      23   32
4 B      22   4
5 B      43   12
6 C      12   4
.....

我需要找到每个时间范围内每个圆圈的瞬时速度。 因为第 1 行是起点所以速度为 0,我想为每个圆的 (X, Y) 坐标实现的公式是 sqrt(((x2-x1)^2 + (y2-y1)^2)/ 2)) 其中 x2 和 x1 来自上一行(例如第 1 行和第 2 行,第 2 行和第 3 行)。我想要的最终结果如下:

# Circle  X    Y  Instant velocity
1 A      21   8     0
2 A      32   17   sqrt(((32-21)^2 + (17-8)^2)/2))
3 A      23   32   sqrt(((23-32)^2 + (32-17)^2)/2))
4 B      22   4     0
5 B      43   12   sqrt(((43-22)^2 + (12-4)^2)/2))
6 C      12   4     0
.....

谁能帮我在 Rstudio 上实现这个目标???

你的代码示例中 )( 多了一个,这让我对 /2 的去向感到有点困惑,但是如果你验证我的语法是这样的应该工作:

library(dplyr) 
your_data %>%
  group_by(Circle) %>%
  mutate(
    instant_velocity = coalesce(sqrt(((x - lag(x))^2 + (y - lag(y))^2)/2), 0)
  )