[問題] 取值:落在時間範圍 並 符合其他條件

看板R_Language作者 (特務)時間8年前 (2017/02/02 21:36), 8年前編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/2 (看更多)
文章分類提示:問題 [問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 板上各位大大好 我想請問如果 data2 跟 data1有以下2個/3個變數,例如長得像以下那樣: data1 Goback Bus_No. DepartureTime 0 1 5:50 0 2 6:10 0 3 6:30 0 4 6:50 0 5 7:10 1 1 6:00 1 2 6:20 1 3 6:40 1 4 7:00 1 5 7:20 data2 預期結果"Bus_No."新增於data2內如下: DepartureTime Goback Bus_No. 2015-12-25 05:51:20 0 1 2015-12-26 06:53:30 0 4 2015-12-27 06:22:58 1 2 2015-12-28 05:58:32 1 1 2015-12-29 07:09:24 0 5 我想做的事情是根據data2裡的 "DepartureTime" 和 "Goback" 這兩個變數數, 去找data1裡面對應的"Bus_No."傳回data2,並新增一個欄位"Bus_number"儲存結果 例: data2資料集內第四筆: 2015-12-28 05:58:32 Goback=1 則查找data1資料集內, 符合 Goback為1 且 與 DepartureTime 最接近 05:58:32者為 Goback Bus_No. DepartureTime 1 1 6:00 故 2015-12-28 05:58:32 且 Goback=1,預期結果Bus_No.應為"1" 我用上次板上大大教的foverlaps函數去試著改寫, 但弄了幾天一直沒辦法把Goback的判斷式加入,想請教大大我判斷應該怎麼寫才對 data2[, foverlaps( Tmp_calculation, BusScedule_51_difftime )] %>% .[, Bus_No. := data1$Bus_No. ] %>% _________________ ↓ Goback的判斷條件應該是加再這邊,但我用中括號取值弄不出我想要的結果 以上,若有其他方法可用也請不吝分享 再麻煩請板上大大協助指點,感謝>"< [關鍵字]: foverlaps match 或者 %in% (?) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.119.164 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1486042611.A.44D.html ※ 編輯: joson4921 (140.113.119.164), 02/02/2017 21:37:23

02/02 23:52, , 1F
你要找最靠近的應該直接which.min(time diff)非foverlap
02/02 23:52, 1F

02/02 23:56, , 2F
你這裡的Bus_No是要當篩選條件,而非用:= 另立新欄或新值
02/02 23:56, 2F

02/03 00:00, , 3F
看錯 GoBack...啊 我試回一篇好了...
02/03 00:00, 3F
文章代碼(AID): #1OapNpHD (R_Language)
文章代碼(AID): #1OapNpHD (R_Language)