Я застрял на некоторых вопросах сходства строк.
Вот так выглядят мои данные (исходные данные огромны):
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
напрямую для фильтрации этих серийных номеров, потому что if удалит 2658358
.
Я думал об использовании stringdist
, чтобы найти сходство строк в качестве другого условия (т. Е. Отфильтровать по abs (сходство)> 1.5 и abs (сходство) <0.5), но не могу найти эффективный способ справиться с ним. , Данные огромны и используются для l oop - непрагматично c. Я застрял на некоторое время и, надеюсь, кто-нибудь может дать мне совет или предложение по этому вопросу. </p>