由ExpressionSet对象的样本子集

时间:2012-02-10 18:31:27

标签: r bioconductor

我有一个包含100个样本的ExpressionSet对象:

> length(sampleNames(eset1))
100

我还有75个样本的名称的向量(不是数据本身):

> length(vecOf75)
75

如何根据75个样本名称对eset1进行子集(并保存)?也就是说,我想忽略那些名称未在eset1中列出的vecOf75中的样本。请记住,与75个样本名称对应的某些样本可能不在eset1中。因此,

> length(sampleNames(eset1))

现在应该给出一些< 75。

2 个答案:

答案 0 :(得分:6)

ExpressionSet可以像矩阵一样是子集,所以也许

eset2 = eset1[, sampleNames(eset1) %in% vecOf75]

all(vecOf75 %in% sampleNames(eset1))然后只是

eset1[, vecOf75]

不确定'保存'是什么意思;保存(eset2,“some_file.rda”)或提取组件exprs(eset2)pData(eset2)等,并使用write.table和其他标准R函数。

答案 1 :(得分:2)

eset1 <- vecOf75[vecOf75 %in% eset1]这就是说,除了eset1那些vecOf75在eset1中的那些

使用数字的简单示例:

eset1 <- sample(1:100)
vecOf75 <- sample(1:200,75)
eset1 <- vecOf75[vecOf75 %in% eset1]

或者,您可以使用subset()但是,习惯于通过']'进行子集化在编程方面更有用。

subset(vecOf75, vecOf75 %in% eset1)