使用ComplexHeatmap包创建多个热图时出错

时间:2017-01-19 01:40:32

标签: r heatmap

我在使用ComplexHeatmap包创建多个热图时遇到困难。当我运行一个脚本,其中包含完全从文档中提取的代码(https://bioconductor.org/packages/release/bioc/vignettes/ComplexHeatmap/inst/doc/s3.a_list_of_heatmaps.html)...

library(ComplexHeatmap)

mat1 = matrix(rnorm(80, 2), 8, 10)
mat1 = rbind(mat1, matrix(rnorm(40, -2), 4, 10))
rownames(mat1) = paste0("R", 1:12)
colnames(mat1) = paste0("C", 1:10)

mat2 = matrix(rnorm(60, 2), 6, 10)
mat2 = rbind(mat2, matrix(rnorm(60, -2), 6, 10))
rownames(mat2) = paste0("R", 1:12)
colnames(mat2) = paste0("C", 1:10)

ht1 = Heatmap(mat1, name = "ht1")
ht2 = Heatmap(mat2, name = "ht2")
class(ht1)

class(ht2)

ht1 + ht2

...我收到错误消息:

Error in ht1 + ht2 : non-numeric argument to binary operator
Execution halted

我正在运行R版本3.3.2(2016-10-31) - "真诚的南瓜补丁"在Mac OS X 10.12.2上使用ComplexHeatmap版本1.12.0。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我明白了。问题是需要附加“方法”包。如果你直接在R中运行上面的代码(我没有这样做),它按原样运行(因为默认情况下R显然会加载方法包),但如果你有一个文件中的脚本并通过Rscript运行它(是我正在做的事情,你得到指示的错误。但是,如果添加

 library(methods)

到脚本的顶部,它通过Rscript工作。