簡體   English   中英

從R的熱圖功能中獲取集群?

[英]getting clusters from R's heatmap function?

我正在使用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中是否存在這種情況?

您正在尋找heatmap功能的keep.dendro參數。 然后將樹形圖存儲在輸出的RowvColv元素中。

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

接下來,使用as.hclust函數將dendrogram對象轉換為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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM