从R中的列中提取所有匹配的

时间:2013-09-12 05:52:47

标签: r for-loop match

我有一份基因列表。 (1024,284,526)。我将它们的相关序列放在一个文件中(表示为ff)。我在desc中提取了名字(ff)。文件ff可以包含多次geneid。我的循环只提取第一个命中(只有1个序列)。我想提取所有与我的基因id匹配的序列(可能有多个序列)。 file ff可以包含(1024,1024,1024,284,526)。我想提取ID为1024的所有三个序列。但我的循环只提取前1024个

for(i in 1:length(geneids)){

   temp<- ff[match(geneids[i],as.numeric(gsub("\\_.*","", desc)))]
   subset.seq <- c(subset.seq,temp) 
   subset.seq<-subset.seq[!sapply(subset.seq, is.null)]
   #print(subset.seq)
   temp1 <- names(temp)
   temp2 <-c(sapply(temp, function(x) x))
   s2 <- c(s2,temp1)
   s1 <- c(s1,temp2)
i <- i + 1}

1 个答案:

答案 0 :(得分:0)

只需删除匹配,我就能解决问题。匹配只获得第一个匹配。

for(i in 1:length(geneids)){

temp <- c(temp,ff[geneids[i] == as.numeric(gsub("\\_.*","", desc))])

}