【发布时间】:2019-09-09 12:22:41
【问题描述】:
我正在使用 hclust 在 266 个观测值中查找集群。所有变量都是分类的。我正在尝试创建从 daisy 函数创建的相异矩阵的热图,以可视化集群内的相似性。我正在使用heatmap 函数:
heatmap(x, Rowv = NULL, Colv = if(symm)"Rowv" else NULL,
distfun = dist, hclustfun = hclust,
reorderfun = function(d, w) reorder(d, w),
add.expr, symm = FALSE, revC = identical(Colv, "Rowv"),
scale = c("row", "column", "none"), na.rm = TRUE,
margins = c(5, 5),
cexRow = 0.2 + 1/log10(nr), cexCol = 0.2 + 1/log10(nc),
labRow = NULL, labCol = NULL, main = NULL,
xlab = NULL, ylab = NULL,
keep.dendro = FALSE, verbose = getOption("verbose"))
但是,此函数要求 x 是一个数值矩阵。我尝试使用 data.matrix(data, metric="gower") 输入我的相异矩阵,但当我这样做时,它会将矩阵视为数据集。 heatmap.2 函数(可能有一些额外的设置)在我使用的 R 版本中不可用。
我的问题的第二部分是,是否有一种方法可以重新排列热图,使每个集群都清楚地标有下划线。我正在尝试:
x <- cutree(hclust.object, 4)
#cluster number=4
cluster.membership <- factor(assignCluster(data, data, x))
然后在heatmap函数中设置如下:
reorderfun = function(hclust.object, cluster.membership) reorder(hclust.object, cluster.membership)
结果似乎按预期排序。但是,我仍然找不到在热图上可视化聚类结果的方法(例如,通过使用图例)。
【问题讨论】:
标签: r heatmap categorical-data