Подмножество сэмплами для объекта ExpressionSet - PullRequest
7 голосов
/ 10 февраля 2012

У меня есть объект ExpressionSet с 100 выборками:

> length(sampleNames(eset1))
100

У меня также есть вектор имен из 75 выборок (не сами данные):

> length(vecOf75)
75

Как я могу установить подмножество eset1 (и сохранить его) в соответствии с 75 именами образцов?То есть я хочу не обращать внимания на те образцы в eset1, имена которых не указаны в vecOf75.Имейте в виду, что некоторые из семплов, соответствующих 75 наименованиям семплов, могут отсутствовать в eset1.Таким образом,

> length(sampleNames(eset1))

теперь должен давать что-то <75. </p>

Ответы [ 2 ]

6 голосов
/ 11 февраля 2012

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.

2 голосов
/ 10 февраля 2012

eset1 <- vecOf75[vecOf75 %in% eset1] Это говорит, сохранить в eset1 те из vecOf75, где vecOf75 в eset1

Тривиальный пример использования чисел:

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

В качестве альтернативы, вы можете использовать subset(), но привыкнуть к поднаборам через ']' гораздо полезнее программно.

subset(vecOf75, vecOf75 %in% eset1)

...