矩阵列名按下划线分割后取部分数据问题

数据类型是large matrix,行名基因名,列名样本名,列名格式为T1_ATGCATGC,
T1_ATGCATGC,T2_TCGATCGA,T2……,想以下划线为分割,取前半部分为T1或T2的样本数据。
数据读取,列名拆分,分组提取

> rt=read.table("count-matrix.txt", header=T, sep=" ", check.names=F)
a<-sapply(colnames(rt), function(x) unlist(strsplit(x, "_"))[1]) 
a<-as.matrix(a)
#查看a的数据形式
> a[1:5,]
T1_AAACCTGAGATGTCGG T1_AAACGGGGTCATGCAT T1_AAAGATGCATGTTGAC T1_AAAGATGGTCGAGTTT T1_AAAGATGGTCTCTCTG 
               "T1"                "T1"                "T1"                "T1"                "T1"
 #提取T1,T2的样本
Tumor<-c("T1","T2")
b<- a[a[,1]==Tumor,]
table(b)
T1    T2
107    276

#发现得到的结果数量远小于实际可能得到的数量,于是将T1,T2分开查找看结果。
> table(a[,1]=="T1")

FALSE  TRUE 
56359  1171 
> table(a[,1]=="T2")

FALSE  TRUE 
54489  3041
 > table(a[,1]==c("T1","T2"))

FALSE  TRUE 
55423  2107

a的数据表格

img


百思不得其解,这是为啥呢……