R_Language 板


LINE

提供一个我觉得有点酷的方法~~用sweep做 (我直接根据andrew大大改的) tEyedata = matrix(c(0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,1,2,1,2,1,2,1,2,5,7,6, 8,7,8,9,10,3,7,4,1),12,3) pN = matrix(c(0,0,1,2,6,7),2,3) out = vector('list', nrow(pN)) for (i in 1:nrow(pN)){ tmp = sweep(tEyedata, 2, pN[i,], '-') out[[i]] = tEyedata[which(tmp[,1] == 0 & tmp[,2] == 0 & tmp[,3] < 0),] } (out_all = do.call(rbind, out)) out_all即为所求 其中sweep是一个很方便的function 可以matrix(第一个input)对vector(第三个input)做运算 行或列则以第二个input做判断 (根本只是想偷渡sweep.... sweep向量运算版: tEyedata <- matrix(c(0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,1,2,1,2,1,2,1,2,5,7,6,8,7,8, 9,10,3,7,4,1),12,3) pN <- matrix(c(0,0,1,2,6,7),2,3) out = vector('list', nrow(pN)) for (i in 1:nrow(pN)) out[[i]] = tEyedata[sweep(tEyedata, 2, pN[i,], function(x, y){ x[,1] == y[,1] & x[,2] == y[,2] & x[,3] < y[,3] }),] (out_all = do.call(rbind, out)) ※ 引述《elone (Next Step)》之铭言: : 不好意思 小弟是一个新入门的菜逼巴 平常只会写 C : 小弟有一个要做多重 filter 的问题... : 前言 : 事情是这样的 我们想针对不同的使用者与其不同的判断条件去删资料 : ex : source file (因为变数很长所以用ABC 来代替) : tEyedata : C1 C2 C3 : A 0 1 5 : A 0 1 7 : A 0 2 6 : A 0 2 8 : B 0 1 7 : B 0 2 8 : C 0 1 9 : C 0 2 10 : Filter file : pN : C1 C2 C3 : A 0 1 6 : A 0 2 7 : B ... : C .. : ... : 我们要逐一比对 tEyedata C1 C2 和 pN C1 C2 是否有一样 :   如果一样的话 再去看 tEyedata$C3 是否有 >= pN$C3 : 如果有的话 就会把这笔record 拿掉 : 如果没有的话 就会留下这笔 record : 就结果来说应该 tEyedata 会变成 : C1 C2 C3 : A 0 1 5 : A 0 2 6 : B .. : 但是我们的code 都会拿光光 QAQ ... 卡了2天了啊啊啊 : #read prune file : tEyedata <- read.table("Eye.txt",header=T) : pN <- read.table("Eye/Eye_Prune.txt",header=T) : for(i in 1:nrows(tEyedata)) : { : for(j in 1:nrows(pN)) : { : if(tEyedata$subject[[i]] == pN$subejct[[j]] & C1 = C1 & D1 = D1 ) : { : tEyedata <- subset(tEyedata, tEyedata$C3 <= pN$C3[[j]] ) : } : } : } : 但是他都会把不该拿掉的东西拿掉 我好苦恼啊 :   希望有大大可以来救我 :   谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.13.191
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1436954001.A.0C6.html
1F:推 andrew43: 有偷学有推。07/15 18:04
2F:推 cywhale: got one tip! thanks ^^ 07/15 22:40
3F:→ obarisk: 一个cat和一个比较也可以啊 07/15 23:10
4F:→ obarisk: all.equal也许也可以 07/15 23:11
※ 编辑: celestialgod (111.248.13.191), 07/15/2015 23:36:00
5F:推 elone: 有学有推 07/16 10:19
6F:推 Edster: push 07/16 14:48







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