[問題] 用不同條件抓data

作者: joson4921 (特務)   2017-08-08 01:40:28
- 問題: 當你想要問問題時,請使用這個類別。
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
請簡略描述你所要做的事情,或是這個程式的目的
手邊有資料 df 如下:
Goback Toward TravelTime UniqueID
1 A1 32 AA01
1 A2 47 AA01
1 A3 83 AA01
1 A4 122 AA01
1 A5 143 AA01
0 B1 284 BB01
0 B2 302 BB01
0 B3 419 BB01
0 B4 492 BB01
0 B5 701 BB01
0 B1 104 BB02
0 B2 231 BB02
0 B3 245 BB02
0 B4 268 BB02
0 B5 313 BB02
1 A1 31 AA02
1 A2 83 AA02
1 A3 172 AA02
1 A4 198 AA02
1 A5 276 AA02
希望用同一 UniqueID 欄位的五筆資料,算出他們之間 TravelTime 的時間差(秒數)
並新增 TT_diff 欄位容納其結果,但這邊有個問題
因為 5筆 TravelTime資料只能產出 4個 時間差(秒數)
以 UniqueID == AA02 為例,產出之TT_diff欄位結果如下
(第一筆 TT_diff = 83-31 = 52, 以此類推)
TT_diff
52
89
26
78
但我希望產出的結果能夠長得像這樣
也用 UniqueID == AA02 的第一筆資料(TravelTime = 31)塞進去 TT_diff 欄位
後面再接上面產出的4個時間差,像下面這樣:
TT_diff(我想要的結果)
31
52
89
26
78
因為之前用 [, := ] 跑運算(好像是magrittr?)沒有跑過這種同時設定兩種條件的
用別的方法試了兩天,弄不出我想要的結果,
如底下程式碼所示,那個31沒辦法出現在第一列.而且最後一列會出現NA
請問板上大大,如果要產出上面我想要的結果,程式碼該怎麼修正,謝謝!!
[程式範例]:
<我的程式碼>
result <- df[ , .(TT_diff = TravelTime[2L:5L]-TravelTime[1L:4L] ),
by=.(UniqueID)]
TT_diff(跑出來的結果,跟想要的差很多)
52
89
26
78
NA
[環境敘述]:
[關鍵字]:
選擇性,也許未來有用

Links booklink

Contact Us: admin [ a t ] ucptt.com