3

我正在尝试在聚类后创建矩阵的热图。

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

我在热图的帮助消息之后使用了上述命令,但返回以下错误消息:

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

如何进行聚类,绘制聚类数据的热图,同时保留树状图?我可能没有很好地理解参数列表中的函数。

4

1 回答 1

4

distfun参数hclustfun应该是函数。您正在传递这些函数的结果,并且由于结果本身不是函数,因此会引发错误。apply例如,您知道如何将函数作为其第三个参数吗?然后它自己调用那个函数?heatmap是一样的。

尝试这个:

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

实际上,由于dist是默认参数(参见参考资料),您可以从函数调用?heatmap中省略。distfun您必须为其创建匿名函数的唯一原因hclust是因为默认方法不是“ward”。

heatmap(r.matrix, hclustfun=function(d) hclust(d, method="ward"))
于 2013-11-13T02:26:10.083 回答