问题
在数据呈现递增趋势和递减趋势的情况下,如何确定具体的递减趋势?如何识别R中数据的特定递减趋势?
数据我有在数据帧v4
3个变量。 Time
是以秒为单位的时间,sacc
是车辆的加速度(或减速度),dV
=车辆速度减去前导车辆速度(在相同车道中)并且Vehicle.ID2
是车辆对的唯一ID。以下是示例性数据为1对:
> dput(v4)
structure(list(sacc = c(1.3, 0.9, 0.05, -0.03, -0.5, -1.5, -0.4,
0.2, 0.36, 0.37, -0.04, -1.5, -2.4, -1.7, -2.2, -0.003, -4e-04,
4e-04, 0.002, 0.02, 0.3, 1.6, 1.5, 0), dV = c(4.2, 5.7, 6.6,
7.3, 7.4, 7, 6.5, 6.6, 6.7, 7.1, 7.6, 7.5, 6.7, 4.3, 2.4, 0.16,
0.11, 0.04, -0.009, -0.17, -0.9, -0.7, -0.6, -1.5), Time = 1:24,
Vehicle.ID2 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), class = "factor", .Label = "1-2")), .Names = c("sacc",
"dV", "Time", "Vehicle.ID2"), row.names = c(NA, -24L), class = "data.frame")
dV
连续增加或连续减小。你可以看到附加的线图dV
增加了一段时间,然后下降,再次增加,直到观测数字11.在这一点上,由于连续减速(负sacc
)dV
连续减少,直到它变为零相同的速度),然后为负(导致车辆速度比跟随车辆更快)。
我想要做什么:
我要确定这个特定的下降趋势时dV
一些正值第一负值去。然后我想在此期间获得总时间。在示例数据中,第19(dV变为负数)和第11(dV开始减少)之间的总时间为8秒。
我的尝试:
我能找到的地步dV
变为负值:
require(dplyr)
v4 <- v4 %>%
group_by(Vehicle.ID2) %>%
mutate(trend_dV = sign(dV)-sign(lag(dV)))
但经过这个我一无所知。请指导我如何找到具体的减少趋势?
我想找到的下降,这使得'dV'负。然后我会有两点。第一个下降开始(积极'dV')和第二个'dV'变为负数。 –