如何在R中创建类似声音名称的组?

时间:2015-08-27 20:22:32

标签: r grouping fuzzy-comparison stringdist

我想根据名称选择的相似程度创建一个组变量。我已经开始使用stringdist包来生成距离度量。但我不确定如何使用该输出信息按变量生成组。我看过hclust,但似乎想要使用群集功能,你需要知道最终你想要多少组,我不知道。我开始的代码如下:

name_list <- c("Mary", "Mery", "Mary", "Joe", "Jo", "Joey", "Bob", "Beb", "Paul")

name_dist <- stringdistmatrix(name_list)
name_dist
name_dist2 <- stringdistmatrix(name_list, method="soundex")
name_dist2

我希望看到一个包含两列看起来像

的数据框
name = c("Mary", "Mery", "Mary", "Joe", "Jo", "Joey", "Bob", "Beb", "Paul")

name_group = c(1, 1, 1, 2, 2, 2, 3, 3, 4)

这些群体可能略有不同,具体取决于我使用的距离测量(我上面提到了两个),但我可能会选择其中一个来运行。

基本上,如何在不知道我喜欢的群集数量的情况下从距离矩阵到群组变量?

1 个答案:

答案 0 :(得分:4)

您还可以在基数R中使用adist(...)来计算Levenshtein距离,并根据该距离进行聚类。

n<- c("Mary", "Mery", "Mari", "Joe", "Jo", "Joey", "Bob", "Beb", "Paul")
d <- adist(n)
rownames(d)  <- n
cl <- hclust(as.dist(d))
plot(cl)