一个上午搞定了,难搞的表达矩阵中提取随机样本。
数据包简介:
首先,GSE63885共有100多例病人样本,而我选择的是随机的29例(指定)。如果为某一项指标制定可使用sprate分割列 ‘sep=':’然后根据select筛选。
具体思路
而我们需要的比较特别,所以我使用excel列举出需要删选出的列名。
1用excel列举样本名
image.png2然后读入并赋值
group <- read.csv('group.csv')
3修改第一项列名(导入时列名乱码)
colnames(group)[1]='ID'
4 将表达矩阵的metrix变为data.frame,然后转置
exp1=as.data.frame(exp)
exp_t <- t(exp1)
exp_t [1:4,1:4]
5 在表达矩阵中增加一列为原来的行名(便于之后合并)
exp_t$ID <- rownames(exp_t)
*报错*
#修改为
ids<-rownames(exp_t)
expr_4<-cbind(exp_t, ID=ids)
6 在合并之前再一次确认表达矩阵是否为data.frame
#如果不是
expr_4 <- as.data.frame(expr_4)
colnames(expr_4)
7 将需要筛选的信息(group)与表达矩阵取交集,就会得到我们需要的样本信息
exp_new=inner_join(expr_4,group,by = 'ID')
8 最后再次转置,添加列名
exp_new1 <- t(exp_new)
colnames(exp_new1) <- group$ID
view(exp_new1)
网友评论