[問題] 特定條件下的列與列時間運算

看板R_Language作者 (特務)時間9年前 (2016/12/02 10:00), 9年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/3 (看更多)
- 問題: 當你想要問問題時,請使用這個類別。 [問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 各位先進大家好,為了方便敘述問題,先節錄以下資料方便說明: Goback NameZh Leave Time UniqueBusID 0 大興一街 TRUE 2015/1/1 13:10:32 大興一街->屯區藝文中心162 0 大興五街 FALSE 2015/1/1 13:10:39 大興一街->屯區藝文中心162 0 大興五街  TRUE  2015/1/1 13:10:51 大興一街->屯區藝文中心162 0 屯區藝文中心 FALSE 2015/1/1 13:11:20 大興一街->屯區藝文中心162 0 屯區藝文中心 TRUE 2015/1/1 13:12:32 大興一街->屯區藝文中心162 1 屯區藝文中心 FALSE 2015/1/1 13:36:50 屯區藝文中心->莒光新城163 1 屯區藝文中心 TRUE 2015/1/1 13:36:56 屯區藝文中心->莒光新城163 1 大興五街 FALSE 2015/1/1 13:37:28 屯區藝文中心->莒光新城163 1 大興五街 TRUE 2015/1/1 13:37:38 屯區藝文中心->莒光新城163 1 大興一街 FALSE 2015/1/1 13:37:43 屯區藝文中心->莒光新城163   當 Leave = TRUE 代表車輛離站 當 Leave = FALSE 代表車輛到站 我想做資料處理問題如下所述: 1、列與列之間的時間運算(同一班車計算站間旅行時間) 前一班車: 大興一街(TRUE,第1筆) -> 大興五街(FALSE,第2筆) 00:00:07 大興一街(TRUE,第1筆) -> 屯區藝文中心(FALSE,第4筆) 00:00:48   後一班車:屯區藝文中心(TRUE,第7筆) -> 大興五街(FALSE,第8筆) 00:00:32        屯區藝文中心(TRUE,第7筆) -> 大興一街(FALSE,第10筆) 00:00:47 之前曾經來板上問過,知道對UniqueBusID用groupby下去, 就可以把不同班車的資料切分開來處理,以資料為例,前5筆和後5筆分別是不同班車 而我想求的是站間旅行時間,因此必須計算列與列之間的時間差, 但是這邊我希望程式可以自動判斷 (1) 當上下兩列的UniqueBusID一樣的時候才計算站間旅行時間 (2) 第5筆資料其實是無用的,因為終點站只需要到達時間(Leave=FALSE) 所以希望程式跳過不執行 (3) 當上下兩列的UniqueBusID不同時,則計算時間的基準改為新的資料 以前一班車為例,站間旅行時間計算基準是第1筆資料(Leave = TRUE,車輛離站) 但是第6筆資料開始UniqueBusID改變了(不同車班) 故後一班車的站間旅行時間計算基準改為第7筆資料(Leave = TRUE,車輛離站) 試了好幾天試不出來想要的結果,可能是我對R的函數不熟悉的關係 有請板上各位先進指點迷津,非常感謝!! [程式範例]: [環境敘述]: 請提供 sessionInfo() 的輸出結果, 裡面含有所有你使用的作業系統、R 的版本和套件版本資訊, 讓版友更容易找出錯誤 [關鍵字]: 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.119.164 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1480644008.A.E80.html

12/02 11:27, , 1F
時間差19秒和2分鐘應該是第3 和5 對第1筆的時間差吧?
12/02 11:27, 1F
是,不過我的比較對象是第1筆對第2筆和第4筆沒錯,時間差秒數已修正,感謝糾錯 ※ 編輯: joson4921 (140.113.136.220), 12/02/2016 13:35:01
文章代碼(AID): #1OGDMew0 (R_Language)
文章代碼(AID): #1OGDMew0 (R_Language)