我正在使用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?
答案 0 :(得分:3)
您正在寻找keep.dendro
函数的heatmap
参数。然后将树形图存储在输出的Rowv
和Colv
元素中。
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))