R:grep正好使用具有多个模式的字符向量

时间:2018-03-19 07:12:53

标签: r

如何使用t1功能将t2grep匹配?

T1

t1 %>% head()

[1] "ITGB4"   "GPER1"   "FAM162A" "S100A2"  "MBNL1"   "RNASE11"

T2

t2 %>% head(10)

 [1] ""                                               
 [2] ""                                               
 [3] "RP1-45C12.1;RP1-127D3.4;RP1-127D3.4;RP1-127D3.4"
 [4] "PRKAG2;PRKAG2;PRKAG2"                           
 [5] ""                                               
 [6] "AC022201.4"                                     
 [7] "TLK1"                                           
 [8] ""                                               
 [9] ""                                               
 [10] ""        

我试过grep(paste(t1,sep = "", collapse = "|"), t2, value = T) %>% unique(),但是输出是一些不在t1中的基因合成,或者与t1中的gen symbles完全不同。

关于如何匹配t1和t2的任何好主意?

1 个答案:

答案 0 :(得分:0)

您必须创建字符串的所有版本。只有这个ID,开头的ID,结尾的ID和中间的ID ...

search_string <- paste0(c('^',';',';','^'), 
       rep(t1, each=4), 
       c('$',';','$',';'), collapse='|')
candidates <- grep(search_string, t2)