最近在做一个企业名称匹配的工作,因为从网路捞到的资料中企业名称有缺陷,然后和正确的资料名称模糊匹配后,找到正确的名称及序号。资料格式如下:
捞到的资料(reg):
name
永泰
西宁
京能
华微
正确资料(corp):
code name
600157 永泰能源
600360 华微电子
600791 京能置业
600117 西宁特钢
因为捞到的资料有七万多笔,正确资料中的公司总数约140万,我用stringdist使用下列指令:
得到的结果如下,下面是百分之百对到,但实际上会有些错误产生,这里暂且不论:
name check
永泰 永泰能源
西宁 西宁特钢
京能 京能置业
华微 华微电子
但我需要的结果如下:
name check code
永泰 永泰能源 600157
华微 华微电子 600360
京能 京能置业 600791
西宁 西宁特钢 600117
因为我不想再用sapply再跑一次,实在非常耗费时间和没必要,搞不好会有不必要的错误产生,上面stringdist指令的程式码要怎么修改才能一次将check及code两列放入?
捞到的资料(reg):
name
永泰
西宁
京能
华微
正确资料(corp):
code name
600157 永泰能源
600360 华微电子
600791 京能置业
600117 西宁特钢
因为捞到的资料有七万多笔,正确资料中的公司总数约140万,我用stringdist使用下列指令:
reg$check <- corp$name[sapply(reg$name, function(x) {
which.min(stringdist::stringdist(x, corp$name, method = 'lcs', useBytes = TRUE))
})]
得到的结果如下,下面是百分之百对到,但实际上会有些错误产生,这里暂且不论:
name check
永泰 永泰能源
西宁 西宁特钢
京能 京能置业
华微 华微电子
但我需要的结果如下:
name check code
永泰 永泰能源 600157
华微 华微电子 600360
京能 京能置业 600791
西宁 西宁特钢 600117
因为我不想再用sapply再跑一次,实在非常耗费时间和没必要,搞不好会有不必要的错误产生,上面stringdist指令的程式码要怎么修改才能一次将check及code两列放入?