我很感激R的热图功能的树形图(Colv,Rowv)上的任何信息材料。比如聚类是如何工作的(它是欧几里德的距离吗?)。你不必发表冗长的解释,我已经很高兴看到一些可以让我走上正轨的关键词,所以我可以做一些在线研究。
以下是帮助手册的摘录,让我感到困惑。在这种情况下,“荣幸”意味着什么?它与重新排序有何不同?
如果Rowv或Colv是树形图,那么它们就会受到尊重(而不是 重新排序)。
答案 0 :(得分:3)
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
是一个数值向量,则计算聚类为TRUE
,并使用提供给{{的向量完成树形图的重新排序。 1}} / 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
这可能很有用,例如,如果您想以不同的方式对行和列进行聚类,或者使用其他人给您的聚类,或者您想要做一些无法通过指定hclustfun来解决的问题和distfun。这就是“树形图得到尊重”的含义:它用于代替hclustfun和distfun指定的内容。
答案 1 :(得分:2)
要了解它如何准确处理Rowv / Colv,您还可以使用body(heatmap)
来显示其来源。
答案 2 :(得分:0)
从手册:
distfun:用于计算距离(相异度)的函数 行和列。默认为dist。
hclustfun:用于计算层次聚类的函数 Rowv或Colv不是树状图。默认为hclust。应该采取 参数是distfun的结果并返回一个对象 as.dendrogram可以应用。
dist()
默认为欧氏距离,hclust()
为完整的联动方式。