【发布时间】:2020-06-01 22:27:15
【问题描述】:
我遇到了一些字符串相似性问题。
这就是我的数据的样子(原始数据很大):
SerialNumber SubSerialID Date
AGCC0775CFNDA1040TMT775 AVCC0775CFNDA1040 2018/01/08
AGCC0775CFNDA1040 AVCC0775CFNDA1040 2015/12/28
AGCC0775CFNDA10407EC AVCC0775CFNDA1040 2018/03/17
CH~MT765E~C0765HFNCC1056 BGDC0865HFNKG1043 2019/01/07
2658358 BGDC0865HFNKG1043 2018/08/09
MT765E~C0765KFNCD1044 C0765KFNCD10 2015/04/07
187A126 C0765KFNCD10 2017/11/31
...
我的目标是:
SerialNumber SubSerialID Date
AGCC0775CFNDA10407EC AVCC0775CFNDA1040 2018/03/17
CH~MT765E~C0765HFNCC1056 BGDC0865HFNKG1043 2019/01/07
2658358 BGDC0865HFNKG1043 2018/08/09
MT765E~C0765KFNCD1044 C0765KFNCD10 2015/04/07
187A126 C0765KFNCD10 2017/11/31
...
序列号AGCC0775CFNDA1040TMT775、AGCC0775CFNDA1040 和AGCC0775CFNDA10407EC 是同一个东西,但都是由错误引起的。我想保留AGCC0775CFNDA10407EC,因为它有最新的记录日期。但是,我不能直接使用SubSerialID 和Date 来过滤这些序列号,因为如果会删除2658358。
我曾考虑使用stringdist 来查找字符串相似度作为另一个条件(即,通过 abs(相似度)>1.5 和 abs(相似度)
【问题讨论】:
-
我一直喜欢 11 月 31 日;-)
-
11/31 是一个错字......:P
标签: r stringdist