按照列筛选数据框不容易那么按照行就容易吗

2020-02-20 14:42:35 浏览数 (1)

开始正式教程分享之前,先公布一个好消息,腾讯云的排行榜显示我们生信技能树是平台全国排名第123位有影响力的自媒体,还有一个证书:

前面我出过一个考题,是对GEO数据集的样本临床信息,根据列进行筛选,比如:

代码语言:javascript复制
rm(list=ls())
options(stringsAsFactors = F)
library(GEOquery)
eset=getGEO('GSE102349',getGPL = F)
pd=pData(eset[[1]])

就会下载一个表达矩阵,有113个病人(行),记录了57个临床信息(列),很明显,有一些临床信息列是后续的数据分析里面(主要是分组)没有意义的,病人总共时间日期,所有的病人可能都是一样的。

那么就需要去除,一个简单的按照列进行循环判断即可!

代码语言:javascript复制
pd=pd[,apply(pd,2,function(x){
  length(unique(x))>1
})]

但是,仔细看临床信息表格会发现,还是有问题:

就是仍然是需要去除无效行,就是去掉临床信息为N/A、Unknown、Not evaluated的行,需要检查全部的列哦~

给一个参考答案

代码语言:javascript复制
pd=pd[apply(
  apply(pd,2,function(x){
  grepl('N/A',x)
}),1,sum)==0,]

geo

0 人点赞