我有一个包含100个样本的ExpressionSet对象:
> length(sampleNames(eset1))
100
我还有75个样本的名称的向量(不是数据本身):
> length(vecOf75)
75
如何根据75个样本名称对eset1
进行子集(并保存)?也就是说,我想忽略那些名称未在eset1
中列出的vecOf75
中的样本。请记住,与75个样本名称对应的某些样本可能不在eset1
中。因此,
> length(sampleNames(eset1))
现在应该给出一些< 75。
答案 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)