我将不胜感激有关 R 的热图函数的树状图(Colv,Rowv)的任何信息材料。比如聚类是如何工作的(是欧几里得距离吗?)。你不必发布冗长的解释,我已经很高兴有一些关键词可以让我走上正轨,这样我就可以做一些在线研究。
这是帮助手册的摘录,这让我有点困惑。在这种情况下,“尊敬”是什么意思?它与重新排序有何不同?
如果 Rowv 或 Colv 是树状图,则它们被尊重(而不是重新排序)。
我将不胜感激有关 R 的热图函数的树状图(Colv,Rowv)的任何信息材料。比如聚类是如何工作的(是欧几里得距离吗?)。你不必发布冗长的解释,我已经很高兴有一些关键词可以让我走上正轨,这样我就可以做一些在线研究。
这是帮助手册的摘录,这让我有点困惑。在这种情况下,“尊敬”是什么意思?它与重新排序有何不同?
如果 Rowv 或 Colv 是树状图,则它们被尊重(而不是重新排序)。
Rowv
并Colv
控制是否应重新排序数据集的行和列以及如何重新排序。
它们的可能值是TRUE
、NULL
、FALSE
、整数向量或树状图对象。
在默认模式下TRUE
,heatmap.2 使用hclustfun
和distfun
参数进行聚类。这默认使用欧几里德距离度量来完成链接聚类。然后使用行/列方式对树状图重新排序。hclustfun
您可以通过为或指定不同的功能来控制它distfun
。例如,要使用曼哈顿距离而不是欧几里得距离,您可以这样做:
heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan") )
签出?dist
和?hclust
。如果您想了解有关聚类的更多信息,可以从“距离度量”和“聚集方法”开始。
如果Rowv
/Colv
是NULL
或FALSE
则不进行重新排序或聚类,并且按原样绘制矩阵。
如果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))
它在曼哈顿距离上生成完整的聚类,按行方式排序。您现在可以传递rowDend
给Rowv
.
heatmap.2(x,...,Rowv = rowDend)
这可能很有用,例如,如果您想以不同的方式对行和列进行聚类,或者使用其他人给您的聚类,或者您想做一些仅通过指定 hclustfun 和 distfun 无法适应的时髦的事情. 这就是“尊重树状图”的含义:使用它来代替 hclustfun 和 distfun 指定的内容。
要查看它如何准确地处理 Rowv/Colv,您还可以使用body(heatmap)
它来显示它的源。
从手册:
distfun :用于计算行和列之间的距离(相异性)的函数。默认为 dist。
hclustfun :当 Rowv 或 Colv 不是树状图时,用于计算层次聚类的函数。默认为 hclust。应该将 distfun 的结果作为参数并返回一个可以应用 as.dendrogram 的对象。
dist()
默认具有欧式距离和hclust()
完整的链接方法。