瞬时速度 - 参考先前的值

时间:2017-02-27 10:11:39

标签: r

使用一个非常简单的公式,我该如何计算瞬时速度。

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 + ....

1 个答案:

答案 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