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

> length(sampleNames(eset1))
100


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

> length(vecOf75)
75


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

> length(sampleNames(eset1))


现在应该给出

最佳答案

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函数。

09-15 11:41