我有以下执行分层的代码
聚类并在热图中绘制它们。
library(gplots)
set.seed(538)
# generate data
y <- matrix(rnorm(50), 10, 5, dimnames=list(paste("g", 1:10, sep=""), paste("t", 1:5, sep="")))
# the actual data is much larger that the above
# perform hiearchical clustering and plot heatmap
test <- heatmap.2(y)
哪个情节这个:
我想要做的是从图中的每个层次结构中获取集群成员
产生:
Clust 1: g3-g2-g4
Clust 2: g2-g4
Clust 3: g4-g7
etc
Cluster last: g1-g2-g3-g4-g5-g6-g7-g8-g9-g10
有没有办法做到这一点?
最佳答案
毕竟,我确实有答案! @zkurtz 发现了问题……我使用的数据与您使用的数据不同。我加了一个 set.seed(538)
声明到您的代码以稳定数据。
使用以下代码为行的树状图创建集群成员矩阵:
cutree(as.hclust(test$rowDendrogram), 1:dim(y)[1])
这会给你:
1 2 3 4 5 6 7 8 9 10
g1 1 1 1 1 1 1 1 1 1 1
g2 1 2 2 2 2 2 2 2 2 2
g3 1 2 2 3 3 3 3 3 3 3
g4 1 2 2 2 2 2 2 2 2 4
g5 1 1 1 1 1 1 1 4 4 5
g6 1 2 3 4 4 4 4 5 5 6
g7 1 2 2 2 2 5 5 6 6 7
g8 1 2 3 4 5 6 6 7 7 8
g9 1 2 3 4 4 4 7 8 8 9
g10 1 2 3 4 5 6 6 7 9 10
关于r - 如何从 R 的 hclust/heatmap.2 获取集群成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18354501/