前面我出过一个考题,是对GEO数据集的样本临床信息,根据列进行筛选,比如:
rm(list=ls())
options(stringsAsFactors = F)
library(GEOquery)
eset=getGEO('GSE102349',getGPL = F)
pd=pData(eset[[1]])
就会下载一个表达矩阵,有113个病人(行),记录了57个临床信息(列),很明显,有一些临床信息列是后续的数据分析里面(主要是分组)没有意义的,病人总共时间日期,所有的病人可能都是一样的。
那么就需要去除,一个简单的按照列进行循环判断即可!
pd=pd[,apply(pd,2,function(x){
length(unique(x))>1
})]
但是,仔细看临床信息表格会发现,还是有问题:
就是仍然是需要去除无效行,就是去掉临床信息为N/A、Unknown、Not evaluated的行,需要检查全部的列哦~
给一个参考答案
pd=pd[apply(
apply(pd,2,function(x){
grepl('N/A',x)
}),1,sum)==0,]