2012-07-27 67 views
1

我正在处理一个数据集(第1列=基因名称和第2列=表达式值),我试图做一个聚类图,但是我发现分支是用行号而不是基因ID标记的从第1列为什么聚类图标签使用行而不是ID列中的名称?

数据集:https://dl.dropbox.com/u/364456/miRNA.csv

使用:

attach(animals) 
d=dist(as.matrix(animals)) 
hc=hclust(d) 
plot(hc) 

所得情节:

enter image description here

我试图做的k均值聚类,并最终得到这个错误:

NAs introduced by coercion.

这表明,我认为我没有正确格式化我的数据文件。

任何人都知道这里发生了什么?

+0

动物是R中的一个数据集吗?如果是这样,属于哪个包?如果没有,您是否有示例数据集显示该问题? – 2012-07-27 23:16:30

+0

是的,动物是数据集。它也与以下数据集(miRNA)一起完成。我编辑了这篇文章以反映这一点。还给出了它创建的聚类图的链接。 – user1558387 2012-07-28 13:22:01

回答

3

对于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) 

enter image description here

0

默认情况下,行号或行名称来标记的意见。但是,您可以使用labels参数来选择要用于标签的变量。

plot(modelname, labels=dataset$variable) 
相关问题