8

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

> length(sampleNames(eset1))
100

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

> length(vecOf75)
75

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

> length(sampleNames(eset1))

现在应该给出 <75 的值。

4

2 回答 2

8

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

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

或者如果all(vecOf75 %in% sampleNames(eset1))那么只是

eset1[, vecOf75]

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

于 2012-02-10T20:41:38.050 回答
2

eset1 <- vecOf75[vecOf75 %in% eset1]这就是说,将 vecOf75 的 vecOf75 保存到 eset1 中,其中 vecOf75 在 eset1

一个使用数字的简单示例:

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

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

subset(vecOf75, vecOf75 %in% eset1)

于 2012-02-10T18:44:12.990 回答