gpt4 book ai didi

r - heatmap.2 行标签不显示在热图上

转载 作者:行者123 更新时间:2023-12-05 05:19:22 25 4
gpt4 key购买 nike

我有一个制表符分隔的数据文本文件 (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 版本中,当使用“导入数据集”功能时,没有选项可以将数据文件的第一列声明为“标签”。

非常感谢所有反馈。

最佳答案

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

试试这个:

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

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

library(gplots)
library(dplyr)

y <- iris %>%
sample_frac(0.3) # Take a subset

y.mat <- y %>%
select(-Species) %>% ## Remove identifier
data.matrix() ## Convert to matrix

heatmap.2(y.mat, main="iris", trace="none",
margins = c(10,12), cexRow=0.5,
labRow = y$Species)

## Alternatively set the rownames of your data.matrix
y.mat2 <- y.mat
row.names(y.mat2) <- y$Species
heatmap.2(y.mat2, main="iris", trace="none",
margins = c(10,12), cexRow=0.5)

关于r - heatmap.2 行标签不显示在热图上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46311365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com