我们如何根据树状图中形成的簇将 hclust 的标签放入 table
How can we put label of hclust in table according to clusters formed in dendogram
我有一个树状图,其中的簇有很多叶子 nodes/labels
根据使用 R
形成的簇,我如何将这些标签在 table 行中从 hclust 中删除
您需要访问存储在 rect.hclust
对象中的数据,如下所示:
obj <- rect.hclust(my_matrix, k = n)
str(obj)
通过使用 str
检查 obj
,您将找到按集群分组的所有变量的列表。您可以将它们导出为表格形式,例如使用 lapply
:
labels <- lapply(obj, paste0, collapse = ",")
我认为更直接的方法是使用 cutree
(而不是通过 rect.dendrogram):
> d1 <- USArrests[1:10,]
> d1 <- USArrests[1:10,]
> hc <- hclust(dist(d1))
> hcc <- cutree(hc, k = 3)
> hcc
Alabama Alaska Arizona Arkansas California
1 1 2 1 2
Colorado Connecticut Delaware Florida Georgia
1 3 1 2 1
> data.frame(d1, hcc)
Murder Assault UrbanPop Rape hcc
Alabama 13.2 236 58 21.2 1
Alaska 10.0 263 48 44.5 1
Arizona 8.1 294 80 31.0 2
Arkansas 8.8 190 50 19.5 1
California 9.0 276 91 40.6 2
Colorado 7.9 204 78 38.7 1
Connecticut 3.3 110 77 11.1 3
Delaware 5.9 238 72 15.8 1
Florida 15.4 335 80 31.9 2
Georgia 17.4 211 60 25.8 1
专业提示:如果您使用的是树状图而不是 hclut,则可以使用 dendextend 程序包来获得树状图的 cutree。
我有一个树状图,其中的簇有很多叶子 nodes/labels 根据使用 R
形成的簇,我如何将这些标签在 table 行中从 hclust 中删除您需要访问存储在 rect.hclust
对象中的数据,如下所示:
obj <- rect.hclust(my_matrix, k = n)
str(obj)
通过使用 str
检查 obj
,您将找到按集群分组的所有变量的列表。您可以将它们导出为表格形式,例如使用 lapply
:
labels <- lapply(obj, paste0, collapse = ",")
我认为更直接的方法是使用 cutree
(而不是通过 rect.dendrogram):
> d1 <- USArrests[1:10,]
> d1 <- USArrests[1:10,]
> hc <- hclust(dist(d1))
> hcc <- cutree(hc, k = 3)
> hcc
Alabama Alaska Arizona Arkansas California
1 1 2 1 2
Colorado Connecticut Delaware Florida Georgia
1 3 1 2 1
> data.frame(d1, hcc)
Murder Assault UrbanPop Rape hcc
Alabama 13.2 236 58 21.2 1
Alaska 10.0 263 48 44.5 1
Arizona 8.1 294 80 31.0 2
Arkansas 8.8 190 50 19.5 1
California 9.0 276 91 40.6 2
Colorado 7.9 204 78 38.7 1
Connecticut 3.3 110 77 11.1 3
Delaware 5.9 238 72 15.8 1
Florida 15.4 335 80 31.9 2
Georgia 17.4 211 60 25.8 1
专业提示:如果您使用的是树状图而不是 hclut,则可以使用 dendextend 程序包来获得树状图的 cutree。