我有一个像这样的数据框
> myDataFrame
company
1 Investment LLC
2 Hyperloop LLC
3 Invezzstment LLC
4 Investment_LLC
5 Haiperloop LLC
6 Inwestment LLC
我需要匹配所有这些模糊字符串,因此最终结果应如下所示:
> myDataFrame
company
1 Investment LLC
2 Hyperloop LLC
3 Investment LLC
4 Investment LLC
5 Hyperloop LLC
6 Investment LLC
所以,实际上,我必须为分类变量解决部分匹配和替换任务。基础R和包中有很多很棒的函数来解决字符串匹配问题,但我很难找到这种匹配和替换的单一解决方案。 我不关心哪种情况会取代其他情况,例如“投资有限责任公司”或“投资有限责任公司”都同样罚款。只需要它们一致。
是否有任何单一的一体化功能或循环?
答案 0 :(得分:0)
如果你有正确拼写的矢量,agrep
会使这个变得相当容易:
myDataFrame$company <- sapply(myDataFrame$company,
function(val){agrep(val,
c('Investment LLC', 'Hyperloop LLC'),
value = TRUE)})
myDataFrame
# company
# 1 Investment LLC
# 2 Hyperloop LLC
# 3 Investment LLC
# 4 Investment LLC
# 5 Hyperloop LLC
# 6 Investment LLC
如果你没有这样的矢量,如果正确的拼写比其他拼写重复得多,你很可能会聪明地应用adist
甚至只table
。是(虽然不在这里)。
答案 1 :(得分:0)
所以,过了一段时间我最终得到了这个愚蠢的代码。 注意:不完全自动化替换过程,因为每次正确的匹配应该由人验证,并且每次我们需要微调agrep {{ 1}}参数。我完全相信有办法让它变得更好更快,但这有助于完成工作。
max.distance