rtime-seriesacceleration

Calculating car acceleration from recording time and speed in R


I would like to calculate a new variable "acceleration (in m/s^2)" for longitudinal recorded car data and only have the speed of the car(in m/s) and the recording time (in s).

This is a part of the dataframe df:

 speed time_sec
1 27.520    0.273
2 27.520    0.313
3 27.172    0.353
4 26.887    0.393
5 26.560    0.433
6 26.560    0.473

How could I add a new variable "acceleration (positive values)/ deceleration (negative values)" to every recording row of the car?


Solution

  • This is basically delta speed divided by delta time. So use diff twice and don't forget the first value is not computable from the data.

    c(NA, with(cars, diff(speed)/diff(time_sec)))
    #[1]     NA  0.000 -8.700 -7.125 -8.175  0.000
    
    cars$accel <- c(NA, with(cars, diff(speed)/diff(time_sec)))
    

    Data.

    cars <- read.table(text = "
     speed time_sec
    1 27.520    0.273
    2 27.520    0.313
    3 27.172    0.353
    4 26.887    0.393
    5 26.560    0.433
    6 26.560    0.473                   
    ", header = TRUE)