在R中聚类后绘制数据的热图

时间:2013-11-13 01:59:56

标签: r heatmap hierarchical-clustering

我正在尝试在群集后创建矩阵的热图。

heatmap(r.matrix, 
        distfun = dist(r.matrix, method="euclidean"), 
        hclustfun = hclust(dist(r.matrix, method="euclidean"), method ="ward"))

我在heatmap的帮助消息之后使用了上面的命令,但是回来时出现以下错误消息:

Error in heatmap(r.matrix, distfun = dist(r.matrix, method = "euclidean"),  :
                 could not find function "hclustfun"

如何进行聚类,绘制聚类数据的热图,还保留树形图?我可能还没有完全理解参数列表中的函数。

1 个答案:

答案 0 :(得分:3)

distfunhclustfun参数应该是函数。您正在传递这些函数的结果,并且由于结果本身不是函数,因此会抛出错误。你知道apply如何将函数作为第三个参数?然后它调用该函数本身? heatmap也是一样。

试试这个:

heatmap(r.matrix, distfun=dist, hclustfun=function(d) hclust(d, method="ward"))

实际上,由于dist是默认参数(请参阅?heatmap),因此可以省略函数调用中的distfun。您必须为hclust创建匿名函数的唯一原因是因为默认方法不是“病房”。

heatmap(r.matrix, hclustfun=function(d) hclust(d, method="ward"))