2

我将不胜感激有关 R 的热图函数的树状图(Colv,Rowv)的任何信息材料。比如聚类是如何工作的(是欧几里得距离吗?)。你不必发布冗长的解释,我已经很高兴有一些关键词可以让我走上正轨,这样我就可以做一些在线研究。

这是帮助手册的摘录,这让我有点困惑。在这种情况下,“尊敬”是什么意思?它与重新排序有何不同?

如果 Rowv 或 Colv 是树状图,则它们被尊重(而不是重新排序)。

4

3 回答 3

3

RowvColv控制是否应重新排序数据集的行和列以及如何重新排序。

它们的可能值是TRUENULLFALSE、整数向量或树状图对象。

  • 在默认模式下TRUE,heatmap.2 使用hclustfundistfun参数进行聚类。这默认使用欧几里德距离度量来完成链接聚类。然后使用行/列方式对树状图重新排序。hclustfun您可以通过为或指定不同的功能来控制它distfun。例如,要使用曼哈顿距离而不是欧几里得距离,您可以这样做:

    heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan") )
    

    签出?dist?hclust。如果您想了解有关聚类的更多信息,可以从“距离度量”和“聚集方法”开始。

  • 如果Rowv/ColvNULLFALSE则不进行重新排序或聚类,并且按原样绘制矩阵。

  • 如果Rowv/Colv是一个数值向量,则按照 for 计算聚类,TRUE并使用提供给Rowv/的向量完成树状图的重新排序Colv

  • 如果Rowv/Colv是一个树状图对象,那么这个树状图将用于对矩阵进行重新排序。例如,可以通过以下方式生成树状图对象:

    rowDistance = dist(x, method = "manhattan")
    rowCluster = hclust(rowDistance, method = "complete")
    rowDend = as.dendrogram(rowCluster)
    rowDend = reorder(rowDend, rowMeans(x))
    

    它在曼哈顿距离上生成完整的聚类,按行方式排序。您现在可以传递rowDendRowv.

    heatmap.2(x,...,Rowv = rowDend)
    

    这可能很有用,例如,如果您想以不同的方式对行和列进行聚类,或者使用其他人给您的聚类,或者您想做一些仅通过指定 hclustfun 和 distfun 无法适应的时髦的事情. 这就是“尊重树状图”的含义:使用它来代替 hclustfun 和 distfun 指定的内容。

于 2013-03-13T16:48:43.843 回答
2

要查看它如何准确地处理 Rowv/Colv,您还可以使用body(heatmap)它来显示它的源。

于 2013-03-14T12:29:16.873 回答
0

从手册:

distfun :用于计算行和列之间的距离(相异性)的函数。默认为 dist。

hclustfun :当 Rowv 或 Colv 不是树状图时,用于计算层次聚类的函数。默认为 hclust。应该将 distfun 的结果作为参数并返回一个可以应用 as.dendrogram 的对象。

dist()默认具有欧式距离和hclust()完整的链接方法。

于 2013-03-13T14:33:13.820 回答