提问人:Mariama Drame 提问时间:1/20/2023 最后编辑:PhilMariama Drame 更新时间:1/21/2023 访问量:25
使用 -matchit- 命令使用模糊字符串比较进行数据合并和清理
Data consolidation and cleaning using fuzzy string comparisons with -matchit- command
问:
我有两个数据库,一个是指定数据,另一个是数据1(参考),我想比较每个数据名称和数据2的代码,我必须通过编写名称来做到这一点,如果它们写得相同或相似,我必须有相同的代码,但他可以找到字典数据库中多行相同的文字,并在希望他将代码与单词长度相等或更接近的那个。
> dados=data.frame(designacao = c("arroz","arroz agulha","arroz agulha","arroz grao medio", "arro","arroz medio","Leite pasteurizado meio gordo"),
+ codigo = c("11111","11111","11111","11112","11111","11114","1141204"))
> dados1=data.frame(designacao = c("arroz","arroz grao medio longo","arroz grao medio", "Leite pasteurizado meio gordo"),
+ codigo = c("11111","11113","11112","1141202"))
> dados
designacao codigo
1 arroz 11111
2 arroz agulha 11111
3 arroz agulha 11111
4 arroz grao medio 11112
5 arro 11111
6 arroz medio 11114
7 Leite pasteurizado meio gordo 1141204
> dados1
designacao codigo
1 arroz 11111
2 arroz grao medio longo 11113
3 arroz grao medio 11112
4 Leite pasteurizado meio gordo 1141202
三种可能的情况: - 只有一行字数最大 - 超过两行,字数最多但长度不同:发生这种情况时,取字长最接近的行。
- 超过两行的最大字数,但长度相等:发生这种情况时,将数据指定代码与字数最大行上的任何代码进行比较,并检查数据指定是否有任何代码。
> dados
designacao codigo resultado_codigo
1 arroz 11111 Codigo correto
2 arroz agulha 11111 Codigo correto
3 arroz agulha 11111 Codigo correto
4 arroz grao medio 11112 Codigo correto
5 arro 11111 Codigo correto
6 arroz medio 11114 codigo invalido, revise o nome da designacao ou o código
7 Leite pasteurizado meio gordo 1141204 codigo invalido, revise o nome da designacao ou o código
答: 暂无答案
评论