我想为纵向记录的汽车数据计算一个新的变量“加速度(以m / s ^ 2为单位)”,并且仅具有汽车的速度(以m / s为单位)和记录时间(以s为单位)。
这是数据框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
如何为汽车的每个记录行添加一个新变量“加速度(正值)/减速度(负值)”?
答案 0 :(得分:0)
这基本上是增量速度除以增量时间。因此,请两次使用diff
,并且不要忘记第一个值不可从数据中计算出来。
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)))
数据。
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)