2014-04-08 39 views
1

我有一個data.frame,我想基於某些ID的列表子集。我想從這個data.frame中提取與我的變量「基因」具有相同ID的所有行。到目前爲止,我有:子集的錯誤

Final_Genes <- subset(Merged_Results,Merged_Results$Entrez.ID == genes, select = c(1:8)) 

但是這會產生錯誤,

Warning messages: 

    1: In is.na(e1) | is.na(e2) : 
     longer object length is not a multiple of shorter object length 
    2: In `==.default`(Merged_Results$Entrez.ID, genes) : 
     longer object length is not a multiple of shorter object length 

哪個說實話,我不明白。

回答

4

嘗試

Final_Genes<-Merged_Results[Merged_Results$Entrez.ID==genes,1:8] 

這是假定的 「基因」 是同一個Entrez.ID說。如果基因是多個「Entrez.ID」的載體,你可以用%in%代替

+0

Final_Genes <-Merged_Results [Merged_Results $ Entrez.ID%in%genes,1:8],工作完美。非常感謝您的幫助。我必須充分地學習如何正確地在R子集。 – user3294511

+0

那麼工作? –

+0

很高興聽到它 - 爲了這個和你所問的其他問題 - 如果你得到一個可行的答案,你應該投票並接受它們,以便人們知道這個問題已經得到解決。 –

1

只需用%替換==即可,即使使用子集命令也可以。