我有一組時間序列數據(特別是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)'。 –