我正在尝试在群集后创建矩阵的热图。
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"
如何进行聚类,绘制聚类数据的热图,还保留树形图?我可能还没有完全理解参数列表中的函数。
答案 0 :(得分:3)
distfun
和hclustfun
参数应该是函数。您正在传递这些函数的结果,并且由于结果本身不是函数,因此会抛出错误。你知道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"))