作者kakaman (日子过的真快阿)
看板R_Language
标题[问题] left join并档後出现重复row
时间Sun Apr 24 02:32:30 2022
大家好,
最近因为资料量大的关系,excel已不敷使用……
故尝试使用R进行资料整并。
在用left join时,发现会抓出多重重复row
想请有经验的前辈指点一下如何只抓出第一笔。
谢谢
范例:
表一:
编号 姓名
1 小明
2 小华
3 小美
表二
姓名 编号 试验日期 试验结果
小明 1 4/1 阳性
小明 1 4/10 阴性
小华 2 4/5 阴性
小美 3 4/9 不确定
> Left join(表一,表二,by ="编号")
以上输入後会发现小明有2笔,但我只需要第一笔...
但我的资料很难取一个显示特异性的key值
想请问大家有何方法可解决以上问题
----
Sent from
BePTT on my Samsung SM-G975F
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.212.49 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1650738752.A.C6D.html
1F:→ hohiyan: 请提供语法跟范例档案,不然很难猜问题在哪 @@ 04/24 04:22
2F:推 evilove: 你join的key不是unique 04/24 06:46
※ 编辑: kakaman (223.136.221.44 台湾), 04/24/2022 16:58:53
3F:推 xiangying: 表二看你要根据哪个栏位取唯一(distinst),就可以了 04/24 18:47
4F:→ xiangying: dostinct 04/24 18:47
5F:→ xiangying: distinct... 04/24 18:48
6F:推 EcPlEth: 因为你是按照编号,但编号在表二里面有两个,所以他只好 04/24 19:02
7F:→ EcPlEth: 两row通通return给你 04/24 19:02
8F:→ EcPlEth: 你应该要先挑出表二里面你要的rows,再去跟表一merge 04/24 19:02
9F:→ EcPlEth: 如同楼上讲的,查查distinct的用法即可 04/24 19:02
10F:→ kakaman: 了解~~ 04/25 04:24
11F:推 fox1375: 只要第一笔是只要留日期比较早的?(通常是想留晚的…… 04/26 11:04
12F:→ fox1375: left_join() %>% arrange() %>% group_by() %>% slice(1) 04/26 11:05
13F:→ fox1375: arrange日期、group_by编号,最後slice第一笔就可以了 04/26 11:06