楼主: iEricChen
2260 3

[有偿编程] 两个数据集通过相同列(品种)进行模糊匹配然后合并 [推广有奖]

  • 0关注
  • 0粉丝

初中生

14%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
169 点
帖子
5
精华
0
在线时间
16 小时
注册时间
2020-7-17
最后登录
2021-5-18

楼主
iEricChen 发表于 2020-7-17 09:15:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大佬们,请问下我有数据集A和数据集B,他们都有“品种”这一列,我想把他们通过品种进行合并,但是数据集A中的品种可能有些项的内容是“铜、铝”,而数据集B中的品种每一项就是标准的品种名称,如“铜”,精确匹配就无法识别,只能模糊匹配,所以如何才能使他们匹配上,然后讲两个数据集合并或者是将数据集B剩下的列添加到数据集A对应行后面
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据集 行合并

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2020-7-17 10:57:19
既然B的品种是标准化名称,那么factor一下,level数应该不是很大。A的品种,估计是人工操作随意性比较大,但也不会太过杂乱。基于这种理解,建议两种方案:
一、如你所说,模糊匹配,但这样需要对样本进行循环处理,对B的每一个样本都需要对A遍历匹配。
二、如果A的品种不是差异太大,比如说根本没有规律那种,可以两个数据表都增加一列ID,B的品种按照level标准化,A的品种可以编个函数,用正则表达式或者字符串操作提取标准品种,并赋值标准化ID,用apply函数族对所有样本加以处理。最后,就可以按ID执行join操作。这个方案无法解决A中单一样本多个品种重复的问题。
另外,能否从根本上解决A的数据结构问题。

藤椅
llb_321 在职认证  发表于 2020-7-17 22:47:18
这个包我不太会用,你可以用自己的数据试一试:

library(fuzzyjoin)
C<- regex_left_join(A, B, by = c(品种 = "品种"))

#by选项中,第一个品种是A的变量名,第二个“品种”是B的变量名

板凳
湘江之水 发表于 2020-8-20 11:57:26

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 23:49