从R的热图功能中获取集群?

时间:2014-03-17 21:31:20

标签: r cluster-analysis heatmap hierarchical-clustering

我正在使用R heatmap函数进行层次聚类(http://www.inside-r.org/r-doc/stats/heatmap)。是否有一个函数接受heatmap返回的对象,并通过对树形图应用阈值alpha来返回您获得的聚类?功能如:

h <- heatmap(...)
clusters <- get_clusters(h, alpha=0.5)

其中clusters是一个与输入数据帧的列数相同的数组,并为每个条目返回0到n-1之间的数字,其中n是列数(将列分配给簇)。这是否存在于R?

1 个答案:

答案 0 :(得分:3)

您正在寻找keep.dendro函数的heatmap参数。然后将树形图存储在输出的RowvColv元素中。

x = matrix( rnorm(25), ncol=5 )
h = heatmap(x,keep.dendro=TRUE)

接下来,使用dendrogram函数将hclust对象转换为as.hclust对象。然后,如评论中所述,您可以使用cutree来获取群集。

row.clusters = as.hclust( h$Rowv )
cutree(row.clusters,k=3) # break into k=3 clusters

当然,你可以通过

来获得row.clusters
row.clusters = hclust(dist(x))