【发布时间】:2016-04-02 16:40:54
【问题描述】:
当数据表现良好时,识别unique 值很简单。在这里,我正在寻找一种从字符向量中获取近似唯一值列表的方法。
设x 是一个向量,其实体名称略有不同,例如Kentucky loader 可能显示为 Kentucky load 或 Kentucky loader (additional info) 或类似。
x <- c("Kentucky load" ,
"Kentucky loader (additional info)",
"CarPark Gifhorn (EAP)",
"Car Park Gifhorn (EAP) new 1.5.2012",
"Center Kassel (neu 01.01.2014)",
"HLLS Bremen (EAP)",
"HLLS Bremen (EAP) new 06.2013",
"Hamburg total sum (abc + TBL)",
"Hamburg total (abc + TBL) new 2012")
我要得到的东西是这样的:
c("Kentucky loader" ,
"Car Park Gifhorn (EAP)",
"Center Kassel (neu 01.01.2014)",
"HLLS Bremen (EAP)",
"Hamburg total (abc + TBL)")
想法
- 计算所有字符串之间的一些相似性度量(例如 Levenshtein distance)
- 使用longest common subset method
- 不知何故 :(根据这些信息决定哪些字符串属于一起。
但我想这将是一项标准任务(对于那些经常使用“脏”数据的 R 用户),所以我认为会有一套标准方法来处理它。
是否有人有提示或是否有包可以做到这一点?
【问题讨论】:
-
您基本上已经概述了“标准”方法。没有像这样清理文本数据的灵丹妙药。您可以使用您似乎已经知道的工具尽力而为,但随后您必须手动查看它。
-
好吧,如果我真的知道怎么做,我就不会问了;)
-
不是 R,但 OpenRefine 是专门为此类任务开发的。
标签: r data-cleaning