2014-04-08 16 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

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