使用一个非常简单的公式,我该如何计算瞬时速度。
Vi = V0 + acceleration * time
使用MS.Excel可以轻松完成以下任务,因为可以单击上一个上一个单元格,但我们如何在R中调用它?
acceleration <- c(1,2,3,4,5,4,3,2,1)
time <- rep(0.1,9)
df1 <- data.frame(acceleration, time)
df1$instant.vel <- df1$acceleration * df1$time + ....
答案 0 :(得分:0)
尝试使用dplyr::lag
library(dplyr)
df1 %>%
mutate(V=(lag(acceleration,default=0)*lag(time,default=0))+(acceleration*time))
acceleration time V
1 1 0.1 0.1
2 2 0.1 0.3
3 3 0.1 0.5
4 4 0.1 0.7
5 5 0.1 0.9
6 4 0.1 0.9
7 3 0.1 0.7
8 2 0.1 0.5
9 1 0.1 0.3
或一步一步:
df1 %>%
mutate(V0=(acceleration*time)) %>%
mutate(V1=V0+(lag(acceleration,default=0)*lag(time,default=0)))
acceleration time V0 V1
1 1 0.1 0.1 0.1
2 2 0.1 0.2 0.3
3 3 0.1 0.3 0.5
4 4 0.1 0.4 0.7
5 5 0.1 0.5 0.9
6 4 0.1 0.4 0.9
7 3 0.1 0.3 0.7
8 2 0.1 0.2 0.5
9 1 0.1 0.1 0.3