我有車輛軌跡的數據幀。這裏的一個快照:如何比較兩個連續的行與R中的參考值?
> head(df)
vehicle frame globalx class velocity lane
1 2 43 6451214 2 37.76 2
2 2 44 6451217 2 37.90 2
3 2 45 6451220 2 38.05 2
4 2 46 6451223 2 38.18 2
5 2 47 6451225 2 38.32 2
6 2 48 6451228 2 38.44 2
其中,車輛=車輛ID(重複因爲同一車輛在若干時間幀觀察到的),幀=時間的幀的幀ID,其中可以觀察到,globalx前方= x座標車輛類型=車輛類型(1 =摩托車,2 =車,3 =卡車),速度=車輛速度(英尺/秒),車道=車道數量(有6車道)。我認爲下面的例子可以更好地解釋這個問題: '幀'代表十分之一秒,即一幀長0.1秒。在幀't'處,車輛具有全局x座標x(t)並且在幀't-1'(前0.1秒)處具有x(t-1)。參考位置是'U'(globalx = 6451179.1116),我只是想要一個名爲'u'的df中的新列,其中在車輛的globalx大於'U'處的參考座標的行中具有'是' 'U'時,該車輛的連續globalx座標小於參考座標。這意味着如果df有100輛車,那麼'u'欄中會有100'yes',因爲每輛車都會符合上述標準一次。我試圖通過使用ifelse運行該函數來做到這一點,並試圖使用for循環做同樣的事情,但它不適用於我。輸出應該有一個新的列:
vehicle frame globalx class velocity lane u
我嘗試使用ifelse
在for循環和功能,但它並沒有爲我工作。
'ifelse'被量化。不需要'爲'。 '在(df,ü<- globalx > your.coord)' – mlt
@mlt有2個條件,globalx在't'幀,例如幀45應該大於參考座標u AND,並且在連續的前一幀44處,globalx應該小於圖像中所示的參考座標。我如何指定R應該查看連續幀?我嘗試了globalx [i]> 6451179.1116&globalx [i-1] <6451179.116,但它不起作用。 –
類似'ref c(diff(globalx),0))''。在'c()'中檢查參數順序。請注意,如果您有不同的車輛ID,最好使用plyr的'ddply'或類似的方法來完成。 –
mlt