看板 R_Language 關於我們 聯絡資訊
- 問題: 當你想要問問題時,請使用這個類別。 [問題類型]: 程式諮詢(我想用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 [環境敘述]: [關鍵字]: 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.188.102 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1502127633.A.F99.html ※ 編輯: joson4921 (223.137.188.102), 08/08/2017 01:48:27