R_Language 板


LINE

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://webptt.com/m.aspx?n=bbs/R_Language/M.1486051370.A.CDD.html
1F:→ cywhale: 順道一提,data.table不知道哪一版後,DT[,"var"]就不用 02/03 09:12
2F:→ cywhale: 加with=FALSE,DT[,1:3]也不用,以前都要加很困擾..但是 02/03 09:12
3F:→ cywhale: 像我文中傳變數進去還是要DT[,tname,with=F]這樣設計是 02/03 09:13
4F:→ cywhale: 為了什麼?..不解.. 另外自己也有個小問題,要怎麼把變數 02/03 09:15
5F:→ cywhale: $後面,讓DT$'tname' <-這樣寫不行,但有無寫法可以work? 02/03 09:15
6F:推 joson4921: c大!!!!! 02/03 13:14
7F:→ joson4921: 雖然沒有完全看懂你寫的code,但我按照你寫的code改成我 02/03 13:15
8F:→ joson4921: 這邊對應的code並加上origin之後,終於跑出我想要的結果 02/03 13:16
9F:→ joson4921: 了,跑出結果的那刻我都快哭出來了T_T 謝謝!! 02/03 13:17
10F:→ cywhale: 不客氣就是個小程式,還有看不懂處的話請問無妨.. 02/03 18:58







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP