【发布时间】:2019-12-13 12:58:58
【问题描述】:
我想对相似的结果(不是唯一的)进行分组,但我不知道该怎么做。
我的意思是,我有一个名为“名称”的列的 df,其结果类似:ARPO、ARPO S.L、ARPO、SL 等。
|---------------------|------------------|
| name | address |
|---------------------|------------------|
| ARPO | street 1 |
|---------------------|------------------|
| ARPO S.L | street 1 |
|---------------------|------------------|
| ARPO, SL | street 1 |
|---------------------|------------------|
| ARPO SL | street 1 |
|---------------------|------------------|
| AAAA | street 2 |
|---------------------|------------------|
| AAAAAb | street 2 |
|---------------------|------------------|
| AAAAAB | street 2 |
|---------------------|------------------|
这个想法是建立一个像 0,8(或类似)的阈值来识别具有 80% 重合的结果。
然后使用 dplyr 库按 'similar_names' 对它们进行分组,以仅保留每个组的一个结果(行)。
library (dplyr)
groups <- df %>%
group_by(similar_names) %>%
summarise() %>%
arrange(name)
我尝试了使用不同库的不同选项,例如:stringr、duplicated、adist 等...但我没有找到好的解决方案。
【问题讨论】:
-
欢迎来到stackoverflow!您的问题不清楚,请根据How to make a great R reproducible example阅读并编辑您的问题,以便其他用户可以帮助您。另外,添加预期的输出。