合并R中的数据表因子级别

时间:2015-10-06 17:21:43

标签: r dataframe

假设我有一个非常大的数据表,其中一列是" ManufacturerName"。数据没有统一输入,所以非常混乱。例如,可能会有以下观察结果:

ABC Inc
ABC, Inc
ABC Incorporated
A.B.C.
...
Joe Shmos Plumbing
Joe Shmo Plumbing
...

我正在寻找R中的自动方式,尝试将类似的名称视为一个因素级别。我已经学会了手动执行此操作的语法,例如:

levels(df$ManufacturerName) <- list(ABC=c("ABC", "A.B.C", ....), JoeShmoPlumbing=c(...))

但我试图想出一个自动化解决方案。显然它并不完美,因为我无法预测数据表中的每种类型的排列。但也许可以搜索因子级别,删除标点符号/特殊字符,并根据常见的第一个单词创建级别。或任何其他想法。谢谢!

1 个答案:

答案 0 :(得分:0)

查看stringdist包。对于初学者,你可以这样做:

library(stringdist)

x <- c("ABC Inc", "ABC, Inc", "ABC Incorporated", "A.B.C.", "Joe Shmos Plumbing", "Joe Shmo Plumbing")
d <- stringdistmatrix(x)
#    1  2  3  4  5
# 2  1            
# 3  9 10         
# 4  6  7 15      
# 5 16 16 16 18   
# 6 15 15 15 17  1

如需更多帮助,请参阅?stringdistmatrix或在StackOverflow上搜索模糊匹配,近似字符串匹配,字符串距离函数和agrep