使用分层聚类时,列顺序是否重要?

时间:2017-08-10 03:49:52

标签: r heatmap hierarchical-clustering sna

在R的heatmap.2函数中使用层次聚类时,列顺序是否重要?出于某种原因,当我更改CSV文件中列的顺序时,群集正在发生变化。

数据集1如下所示:

      A  B   C   D   E   F   G   H   I   J   K   L   M
 Z1   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 a    0 0   0   0   1   1   1   1   1   1   1   0   0
 Z2   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 b    0 0   0   0   0   0   1   1   1   1   1   1   1
 c    0 0   0   0   0   1   1   1   0   1   1   0   1
 Z3   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 d    0 0   0   0   1   0   0   0   1   1   1   0   0
 e    0 0   0   1   0   1   1   1   1   0   1   0   1
 Z4   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 f    0 0   0   0   0   1   1   1   0   1   1   0   0
 g    1 1   0   1   0   1   1   1   1   1   1   1   0
 Z5   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 h    0 0   1   1   0   1   1   1   0   0   0   1   0
 i    0 0   0   1   0   1   0   1   0   1   1   0   0
 Z6   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 j    1 1   0   0   0   1   1   1   1   0   1   1   0
 k    0 0   0   0   1   1   1   0   1   0   1   1   0
 Z7   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 l    0 1   0   1   0   0   0   0   0   0   1   1   0
 m    0 0   1   1   1   1   0   1   0   0   0   0   0
 n    0 0   0   0   1   1   0   0   0   0   0   0   1
 o    0 0   0   0   1   0   1   1   1   0   1   1   0
 p    1 1   0   0   1   0   0   0   0   1   1   0   0
 Z8   NA    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 q    1 0   1   1   0   0   0   1   1   1   0   0   0
 r    1 0   1   0   1   0   0   1   1   0   1   0   1
 s    1 1   0   1   0   1   0   0   0   0   0   0   0

我正在使用此代码:

 library(gplots)
 v <- read.csv("file_path", row.names=1)
 v <- as.matrix(v)
 binarycol <- colorRampPalette(c("white","black"))

 heatmap.2(v,Rowv=FALSE,Colv=TRUE,dendrogram=c("col"),col=binarycol,
      scale="none",trace="none",key=FALSE,offsetRow=.05,margins=c(5,13),
      labRow=NULL,sepcolor="black",lhei=c(1,3),
      lwid=c(.05,3),cexCol=1,na.color=c("grey85"))

我使用此CSV的文件路径运行完全相同的代码,除了列顺序不同外,它们是相同的:

     B   C   D   E   F   G   I   J   K   L   M   H   A
 Z1  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 a   0  0   0   1   1   1   1   1   1   0   0   1   0
 Z2  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 b   0  0   0   0   0   1   1   1   1   1   1   1   0
 c   0  0   0   0   1   1   0   1   1   0   1   1   0
 Z3  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 d   0  0   0   1   0   0   1   1   1   0   0   0   0
 e   0  0   1   0   1   1   1   0   1   0   1   1   0
 Z4  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 f   0  0   0   0   1   1   0   1   1   0   0   1   0
 g   1  0   1   0   1   1   1   1   1   1   0   1   1
 Z5  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 h   0  1   1   0   1   1   0   0   0   1   0   1   0
 i   0  0   1   0   1   0   0   1   1   0   0   1   0
 Z6  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 j   1  0   0   0   1   1   1   0   1   1   0   1   1
 k   0  0   0   1   1   1   1   0   1   1   0   0   0
 Z7  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 l   1  0   1   0   0   0   0   0   1   1   0   0   0
 m   0  1   1   1   1   0   0   0   0   0   0   1   0
 n   0  0   0   1   1   0   0   0   0   0   1   0   0
 o   0  0   0   1   0   1   1   0   1   1   0   1   0
 p   1  0   0   1   0   0   0   1   1   0   0   0   1
 Z8  NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
 q   0  1   1   0   0   0   1   1   0   0   0   1   1
 r   0  1   0   1   0   0   1   0   1   0   1   1   1
 s   1  0   1   0   1   0   0   0   0   0   0   0   1

如果根据欧几里德距离对列进行聚类,为什么列顺序很重要?或者我做错了什么?

0 个答案:

没有答案