Re: [問題] 取值:落在時間範圍 並 符合其他條件
dt <- fread('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')
dt2 <- fread(' Departure Time 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')
setnames(dt2,3,"gobackx")
setnames(dt,2,"Bus_No")
search_near_time <- function(x, ref_dt,
tname="DepartureTime", val.name="Bus_No") {
require(data.table)
dift <- as.ITime(x) - as.ITime(unlist(ref_dt[,tname,with=F]))
return(unlist(ref_dt[which.min(abs(as.numeric(dift))),val.name,with=F],
use.names = F))
}
dt2[,near:=search_near_time(Time,
subset(dt, Goback==gobackx,
select=c("DepartureTime","Bus_No"))),
by=.(Time)]
※ 引述《joson4921 (特務)》之銘言:
:
: 文章分類提示:問題
:
: [問題類型]:
:
: 程式諮詢(我想用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), 來自: 36.228.157.133
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1486051370.A.CDD.html
→
02/03 09:12, , 1F
02/03 09:12, 1F
→
02/03 09:12, , 2F
02/03 09:12, 2F
→
02/03 09:13, , 3F
02/03 09:13, 3F
→
02/03 09:15, , 4F
02/03 09:15, 4F
→
02/03 09:15, , 5F
02/03 09:15, 5F
推
02/03 13:14, , 6F
02/03 13:14, 6F
→
02/03 13:15, , 7F
02/03 13:15, 7F
→
02/03 13:16, , 8F
02/03 13:16, 8F
→
02/03 13:17, , 9F
02/03 13:17, 9F
→
02/03 18:58, , 10F
02/03 18:58, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):