在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
如果根据欧几里德距离对列进行聚类,为什么列顺序很重要?或者我做错了什么?