2015-08-22 43 views
0

我想R中创建以下ExpressionSet:[R ExpressionSet过滤NA值

dataDirectory <- system.file("extdata", package = "Biobase") 
exprsFile <- "path to expression data.txt" 
exprs <- as.matrix(read.table(exprsFile, header = TRUE, sep = "\t", row.names = 1, as.is = TRUE)) 

pDataFile <- "path to phenotype data.txt" 
pData <- read.table(pDataFile, row.names=1, header=TRUE, sep="\t") 
phenoData <- new("AnnotatedDataFrame",data=pData) 

现在删除从exprs那些列与NA的超过80%的值

exprs <- exprs[,colSums(is.na(exprs)) < 0.8] 

之前,我可以执行以下代码&构建ExpressionSet我必须删除与exprs中上面删除的列匹配的phenoData(= samples)中的所有行。我怎样才能做到这一点?

exampleSet <- ExpressionSet(assayData=exprs, phenoData=phenoData) 
exampleSet 

回答

1

构建ExpressionSet(不滤波)

exampleSet <- ExpressionSet(assayData=exprs, phenoData=phenoData) 

,然后子集,使用所述exprs()函数表达值的下属矩阵的工作:

exampleSet[, colSums(is.na(exprs(exampleSet))) < 0.8] 

询问Bioconductor的问题Bioconductor support site上的封装。

+0

谢谢你的解决方案! – user86533