2016-03-29 109 views
0

我有一列數秒的GPS位置數據幀。我怎樣才能根據時差創建一個新列?即,用於本data.frame:當時間間隔超過定義值時分割數據

df <- data.frame(secs=c(1,2,3,4,5,6,7,10,11,12,13,14,20,21,22,23,24,28,29,31)) 

我想切斷該數據幀時,有3個或更多秒秒位置之間的時間間隙和創建名爲「較量」的新列賦予流水賬段數給一個數據幀尋找這樣的:

id secs bouts 
1  1  1 
2  2  1 
3  3  1 
4  4  1 
5  5  1 
6  6  1 
7  7  1 
8 10  2 
9 11  2 
10 12  2 
11 13  2 
12 14  2 
13 20  3 
14 21  3 
15 22  3 
16 23  3 
17 24  3 
18 28  4 
19 29  4 
20 31  4 

回答

4

使用cumsumdiff

df$bouts <- cumsum(c(1, diff(df$secs) >= 3)) 

記住邏輯值的戈t自動強制爲數字值0/1,並且diff輸出總是比其輸入短一個元素。

+0

現貨上,謝謝@羅蘭 –