我有一组时间序列数据(特别是GPS速度数据),其中包括信号丢失时丢失值的间隔。对于缺少短时间段的情况,我将仅使用na.spline进行填充,但这对于较长的时间段不适用。我想根据预定义的加速度限制将上一个真实值的值降至零。R上升/下降缺少时间序列数据R
#create sample data frame
test <- as.data.frame(c(6,5.7,5.4,5.14,4.89,4.64,4.41,4.19,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,5,5.1,5.3,5.4,5.5))
names(test)[1] <- "speed"
#set rate of acceleration for ramp
ramp <- 6
#set sampling rate of receiver
Hz <- 1/10
所以丢失数据的斜坡将使用前值和加速,以获得一个数据点的速度,直到速度达到零(即过去的速度[4.19] +(赫兹*斜坡)),产生以下值:
3.59
2.99
2.39
1.79
1.19
0.59
0
最后,我需要以相反的方式做到这一点,当信号再次恢复时,需要从零斜升。
希望这是明确的。
干杯
感谢的是,伟大的工作!是的,我还需要将任何以下新辅助工具更改为零,所以这很好。现在我只需要能够以相反的顺序运行这个部分,这样当信号恢复时,从零到信号拾取时的速度不会有明显的跳跃。有没有办法简单地反向运行? – user8605861
在上面的代码中设置'test_speed < - rev(test $ speed)'(而不是'test_speed < - test $ speed'),然后结果是'rev(result)'。 –