0

我有一个基因列表。(1024、284、526)。我将它们的相关序列放在一个文件中(表示为 ff)。我在 desc 中提取了名称(ff)。文件 ff 可以多次包含一个geneid。我的循环只提取第一个命中(只有一个序列)。我想提取与我的基因 id 匹配的所有序列(可能不止一个序列)。文件 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}
4

1 回答 1

0

只需删除匹配,我就能解决问题。比赛只得到第一个命中。

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

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

}

于 2013-09-13T16:38:09.057 回答