Как найти общие столбцы между двумя наборами данных в R? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть два набора данных: «datExprSTLMS», размер которого равен 53 * 17237, и «datExprSTF», размер которого равен 99 * 22144. В двух наборах данных некоторые столбцы (имена-генов) являются общими. Основываясь на использовании match () между именами двух наборов данных, я основал 15711 (TRUE) имя_гена как пересекающиеся гены между ними. Теперь я хотел бы предоставить подмножество «datExprSTLMS», чтобы измерение «datExprSTLMS» было 53 * 15711. Для этого я написал ниже код:

 dim(datExprSTF)
 #[1]    99 22144

 dim(datExprSTLMS)
 #[1]    53 17237

 TCGA2STF <- match(colnames(datExprSTLMS), colnames(datExprSTF))
 table(is.finite(TCGA2STF))
 #FALSE  TRUE 
 #1526  15711 

 #delete NA(mismatch gene_names which in my case are 1526)
 TCGA2STF_final <- Filter(function(x)!all(is.na(x)), TCGA2STF)

 datExprSTLMS_final <- as.data.frame(datExprSTLMS[,TCGA2STF_final])

но после выполнения последней строки моего кода я получаю ниже Ошибка:

 Error in datExprSTLMS[, TCGA2STF_final] : subscript out of bounds

Я пишу свой код на языке R. Мне нужно руководство

1 Ответ

1 голос
/ 03 мая 2019

Мы можем использовать intersect, чтобы найти общие столбцы между двумя наборами данных, а затем использовать их для подмножества datExprSTLMS

datExprSTLMS[, intersect(colnames(datExprSTLMS), colnames(datExprSTF))]
...