2015-08-22 82 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