R_Language 板


LINE

假设有一个 data frame 只有两个变数 X Y, 其数值如下: X Y 1 2 1 3 2 4 2 6 3 2 3 7 . . . 那我希望能够去除出现重复元素的 rows, 所以就会剩下: X Y 1 2 3 7 . . . 目前是用 for loop,但由於资料量较大导致会花上不少时间, 想请问有没有其他方法可以更快解决?谢谢 -- 这是我老婆,如果你之前没看过,现在再看一次 https://imgur.com/o8uCC4R --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.241.130.39 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1613480106.A.182.html
1F:推 andrew43: unique(...) 02/16 21:05
2F:→ xiangying: 嗯...我试过 unique, distinct 跟 duplicate,但这些满 02/16 21:17
3F:→ xiangying: 足不了需求,还是说有什麽参数是我没注意到的? 02/16 21:17
4F:推 wenbuneatble: 两个栏分别distinct之後再bind_cols即可 02/16 21:34
5F:→ locka: 你的需求有顺序问题,意即row1的(1,2)如果选择留下,row2的( 02/16 21:36
6F:→ locka: 1,3)就需排除,这种情况下自己写loop可能是最好的方法,向 02/16 21:36
7F:→ locka: 量化写法比较难控制先後顺序 02/16 21:36
8F:→ wenbuneatble: distinct(df, X) %>% bind_cols(distinct(df, Y)) 02/16 21:36
9F:→ locka: 楼上如果两个栏位各自distinct後数量不一样,这样还可以bin 02/16 21:39
10F:→ locka: d吗? 02/16 21:39
11F:→ xiangying: 两个各自distinct无法达到要的效果(以上面为例,X=2的 02/16 21:56
12F:→ xiangying: rows不会被砍掉) 02/16 21:56
13F:→ xiangying: 如同L大所说,想知道是不是只剩下loop这方法,不然就是 02/16 21:58
14F:→ xiangying: 要写一个底层的函数或是用foreach之类的来加速 02/16 21:58
15F:→ xiangying: 补充说明一下,在考虑该row 是否要被移除,就是看该row 02/16 22:16
16F:→ xiangying: 的每个值是否在前面的rows任意的变数中出现过 02/16 22:16
17F:→ showfeb: 试试递回 https://ideone.com/h9p8Rn 02/16 22:19
18F:推 cywhale: (2,4) or (2,6) 为什麽在预设答案中没有一个留下? 02/16 22:30
19F:→ xiangying: 谢谢S大的程式码,又学了一课,是快上不少,虽然在实际 02/16 22:41
20F:→ xiangying: 数据上还是需要数以分钟的计算时间,但应该是目前较快 02/16 22:41
21F:→ xiangying: 的方法 02/16 22:41
22F:→ xiangying: C大,因为row 1的(1,2)导致後面的rows的X与Y不能出现 02/16 22:42
23F:→ xiangying: 1或2 02/16 22:42
24F:推 cywhale: so若先删x,y共有重复,再删x,y各自重复,再删互有重复? 02/16 22:58
25F:→ cywhale: https://ideone.com/NFdoyO 02/16 22:58
26F:→ cywhale: 啊我没有做一般性测试 最後列可能有bug..sorry..概念参考 02/16 23:03
27F:→ xiangying: 不会,感谢您的想法,明天来测一下真实数据能多快,谢 02/16 23:14
28F:→ xiangying: 谢 02/16 23:14
29F:推 locka: 感谢17楼S大提供的做法,原来有apply(df,2,"%in%"…)这种写 02/16 23:35
30F:推 locka: 法 学习了~FUN的部分竟然能以字串的方式放pipe运算子,好神 02/16 23:35
31F:推 locka: 奇 哈哈 02/16 23:35
32F:→ locka: C大的做法的确有bug喔(一样也是顺序的问题),刚刚帮忙测过 02/16 23:38
33F:→ locka: 了~递回写法不好写 S大厉害!! 02/16 23:38
34F:推 evilove: 为什麽我完全看不懂原po的需求@@.. 02/17 13:40
35F:→ Gjerry: 原po 希望得到一个 data.frame 里面的每个 row 包含的x y 02/17 15:36
36F:→ Gjerry: 都没出现在该 row 之前的任一 row 中 02/17 15:36
37F:→ Gjerry: 然後这些 row 都来自一个给定的 data.frame 02/17 15:37
38F:→ andrew43: row2有y=3了为什麽预期x=3被留下来? 一样还没看懂... 02/17 15:57
39F:→ Gjerry: 应该说从第一列开始,记录一个set包含出现过的 x, y,如 02/17 16:12
40F:→ Gjerry: 果接下来的一列里面包含此set内的值,就丢弃这列;若无就 02/17 16:12
41F:→ Gjerry: 保留这列,然後将这列x, y放入set中。重复这个步骤到最後 02/17 16:12
42F:→ Gjerry: 一列,然後输出保留的列。 02/17 16:12
43F:→ Gjerry: https://ideone.com/J1XkGl 02/17 17:36
44F:→ andrew43: for loop的话可能可以在找到对应时马上排除剩余所有可能 02/17 18:34
45F:→ andrew43: 对应的列,可以减少大量的圈数。 02/17 18:35
46F:→ andrew43: 这可让待比对的资料快速地变少。 02/17 18:37
47F:推 locka: A大的做法也不失为一个好方法,效率取决於不重复资料的稀疏 02/17 18:59
48F:推 locka: 程度~ 02/17 18:59
49F:推 andrew43: 嗯对,太稀疏不值得尝试。 02/17 19:02
50F:推 kokolotl: 借用s大的程式码当范例 https://ideone.com/0roCLw 02/19 21:20
51F:→ kokolotl: 数字多的时候快一些,提供参考 02/19 21:21







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

请输入看板名称,例如:Tech_Job站内搜寻

TOP