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/cn.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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP