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)
)
(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)
)