R_Language 板


LINE

※ 引述《anakinyen (我在台北 天气晴)》之铭言: : [问题类型]: : : 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来) : : [软体熟悉度]: : 新手,只会套用package : [问题叙述]: : 我有一批动物研究的资料 : 资料大致长这个样子,共有12只个体一万多笔 : 个体A 2012/10/11 20:00 实验资料OOXX : 个体A 2012/10/11 23:00 实验资料OOXX : 个体A 2012/10/12 03:00 实验资料OOXX : 个体B 2012/12/11 05:00 实验资料OOXX : 个体B 2012/12/11 11:05 实验资料OOXX : 个体B 2012/12/11 13:00 实验资料OOXX : 个体B 2012/12/11 18:00 实验资料OOXX : 个体B 2012/12/11 20:00 实验资料OOXX : 由於时间间隔过短的话,资料之间可能有相关性 : 因此我现在想要设定6小时的阀值,间隔超过6小时的资料才会保留 : 以上面资料为例 : A个体保留第一、第三笔资料 : B个体保留第一、第二、第四笔资料 : 我的程度是新手,偶尔会拿一些package来套用 : 请教是否有相关套件或现成code可以用在这个案例 : 非常感谢~~ 借用 celestialgod 大大的函数去生data 我的想法是 新生成一个变数 interval , 当作时间间隔 , 再去筛选 >6 的 library(data.table) library(dplyr) #生data 3天 numObs <- 10 numInd <- 3 data1 <- data.table(ind = ( sample(numInd, numObs, TRUE)), time = strptime("2012/12/10", "%Y/%m/%d") + sample(86400, numObs, TRUE), obs = rnorm(numObs)) data2 <- data.table(ind = ( sample(numInd, numObs, TRUE)), time = strptime("2012/12/11", "%Y/%m/%d") + sample(86400, numObs, TRUE), obs = rnorm(numObs)) data3 <- data.table(ind = ( sample(numInd, numObs, TRUE)), time = strptime("2012/12/12", "%Y/%m/%d") + sample(86400, numObs, TRUE), obs = rnorm(numObs)) #合并 & 排序 data = rbind(data1,data2,data3) %>% arrange(ind,time) #计算时间差 data$interval = c( 0 , difftime(data$time[ 2:length(data$time) ] , data$time[ 1:( length(data$time)-1 ) ] , units="hours" ) ) #筛选时间差 >6 的 x = data %>% filter( . , interval>6 ) #------------------------------------------------------ 我并没有处理 ind: 1跳到2时 必须重新计算时间间隔 由於我按照 ind & time 排序 2的第一个interval会是负的 并不影响我们筛选 interval>6 #------------------------------------------------------ 150万笔 user system elapsed 0.27 0.07 0.33 150万笔我是用 min>6 去筛选 因为用hour会抓不到东西 毕竟24小时间隔内 生太多data 会无法出现间隔 >6 hour的情况 #------------------------------------------------ 如果有bug欢迎讨论 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.66.10.146
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1486399622.A.7DD.html ※ 编辑: f496328mm (42.66.10.146), 02/07/2017 00:57:29
1F:→ celestialgod: 这样真的不对XDD,如果第一笔是1点,第二笔是五点, 02/07 08:14
2F:→ celestialgod: 第三笔是八点,照原po逻辑是留1,3笔,可是取前後差 02/07 08:15
3F:→ celestialgod: 六小时只会留第一笔 02/07 08:15
4F:→ celestialgod: 再来是资料要生成间隔三天,只要在time後面的86400 02/07 08:15
5F:→ celestialgod: 加上*3就好 02/07 08:15
6F:→ clansoda: 这个做法我一开始想过 不过看起来好像不是他要的 02/07 08:44
7F:推 anakinyen: 如前两楼所说,这方法不适用此状况,无论如何还是谢谢 02/07 11:23







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