为什么聚类图标签使用行而不是 ID 列中的名称?
-
12-12-2019 - |
题
我正在处理一个数据集(第 1 列 = 基因名称,第 2 列 = 表达值),我正在尝试绘制聚类图,但我发现分支是按行号标记的,而不是按列中的基因 ID 标记的1.
数据集: https://dl.dropbox.com/u/364456/miRNA.csv
使用:
attach(animals)
d=dist(as.matrix(animals))
hc=hclust(d)
plot(hc)
结果图:
我尝试进行 kmeans 聚类并最终收到此错误:
通过强制引入的 NA。
这表明我没有正确格式化我的数据文件。
有人知道这是怎么回事吗?
解决方案
为了 hclust
要将您的基因名称识别为正确的标签名称,此列必须是行名称。
问题:基因 mmu-miR-191
出现两次且行名不能重复。考虑到两行的值相同,我只是假设它是重复的并删除第二行。
read.table("miRNA.csv", sep=",", header=TRUE, row.names=1) -> mirna
mirna[-34,] -> mirna # Delete the redundant row.
row.names(mirna) <- mirna[,1] # Declare column 1 as the row names
dist(as.matrix(mirna)) -> d # And then your routine
hc <- hclust(d)
plot(hc)
其他提示
默认情况下,行号或行名称用于标记观察。但是,您可以使用标签参数选择要用于标签的变量。
plot(modelname, labels=dataset$variable)
. 不隶属于 StackOverflow