heatmap.2 rstudio行标签不会在热图上显示

时间:2017-09-20 00:04:37

标签: r rstudio heatmap

我有一个标签分隔的数据文本文件(Data.txt),包含13列和90行。它有一个标题行(样本值),第一列是样本名称。

当我将数据加载到数据矩阵中时,我的第一列示例名称不会显示。它们都被NA取代。我相信这会导致样本名称不会显示为热图上的列标签。

这是我的简单脚本:

library(gplots)
y <- data.matrix(Data)
heatmap.2(y, main=K12_Ancient_Calculator, trace="none", 
          margins = c(10,12), cexRow=0.5)

需要做什么的想法,以便我的数据文件的第一列中的样本名称显示在y(数据矩阵)中。目前它们显示为NA。

我注意到在我的Rstudio版本中没有选项可以将第一列数据文件声明为&#34;标签&#34;使用&#34;导入数据集&#34;特征

所有反馈都非常感谢。

2 个答案:

答案 0 :(得分:0)

heatmap.2需要一个矩阵作为输入,只接受数值(或NA) 我的猜测是你的样本名称是一个字符向量,它将被data.matrix()转换为NA(由强制引入的NA)

试试这个:

| Instrument | Trans_type | Quantity |
|------------|------------|----------|
|    HFT 123 |        DEB |    50000 |
|    HFT 123 |        DEB |    20000 |
|    HFT 123 |        CRE |    10000 |
|    ZGS 425 |        DEB |    40000 |
|    ZGS 425 |        DEB |    30000 |
|    HFT 123 |        RES |    60000 |
|    ZGS 425 |        RES |    70000 |

下面使用heatmap.2的labRow参数的完整示例。 labRow的默认值是数据矩阵的rownames。在您的情况下,这些可能是空的。可以使用以下选项之一设置它们

y <- data.matrix(Data)
row.names(y) <- Data[,1] # Set rownames
y <- y[,-1] # Remove column with NA

答案 1 :(得分:0)

感谢您的反馈,我稍后会尝试。与此同时,以下也做了诀窍:

filename <- "Data.txt"
test <- read.table(filename, sep ="\t", quote = "", 
                   stringsAsFactors = FALSE,header = TRUE, row.names = 1)
input <- as.matrix(test)
heatmap.2(input, trace = "none", Colv=FALSE, dendogram = 'row', 
          density = "none", col = bluered(20), 
          cexRow = 0.6, cexCol = 0.9, margins = c(8,14), scale = "row", 
          hclust =function(x) hclust(x,method = "average"))