2014-06-24 64 views
1

我有這樣的條目的向量:在向量修改的元素不匹配的模式

[5484] "QUERY___05nirs_WM_WATMOP079"                
[5485] "QUERY___05nirs_WM_WATMAP075"                
[5486] "QUERY___05nirs_WM_WATMAP037"                
[5487] "QUERY___05nirs_WM_WATMOP071"                
[5488] "QUERY___03nirs_WM_WATMAP168"                
[5489] "2022819637_Scalindua_MAnamSca741_C384"             
[5490] "237637177_clone_PeruG11"                 
[5491] "237637158_clone_PeruD2"                 
[5492] "237637172_clone_PeruD12"                 
[5493] "237637168_clone_PeruE11"                 

我想在不包含它已經這些元素的開始追加​​。我想通過grepl得到一個邏輯向量,告訴我哪些元素沒有"QUERY",但不知道如何使用該向量來更改原始向量。

回答

2

這裏有一個簡單的方法

string <- c("QUERY___05nirs_WM_WATMOP079", 
      "QUERY___05nirs_WM_WATMAP075", 
      "QUERY___05nirs_WM_WATMAP037", 
      "QUERY___05nirs_WM_WATMOP071", 
      "QUERY___03nirs_WM_WATMAP168", 
      "2022819637_Scalindua_MAnamSca741_C384", 
      "237637177_clone_PeruG11", 
      "237637158_clone_PeruD2", 
      "237637172_clone_PeruD12", 
      "237637168_clone_PeruE11") 

> ind <- grepl("^QUERY___", string) 
> (string2 <- c(string[ind], paste0("QUERY___", string[!ind]))) 
#[1] "QUERY___05nirs_WM_WATMOP079"     "QUERY___05nirs_WM_WATMAP075"     
#[3] "QUERY___05nirs_WM_WATMAP037"     "QUERY___05nirs_WM_WATMOP071"     
#[5] "QUERY___03nirs_WM_WATMAP168"     "QUERY___2022819637_Scalindua_MAnamSca741_C384" 
#[7] "QUERY___237637177_clone_PeruG11"    "QUERY___237637158_clone_PeruD2"    
#[9] "QUERY___237637172_clone_PeruD12"    "QUERY___237637168_clone_PeruE11"  
3

嘗試:

gsub("(^[^QUERY].*)","QUERY___\\1",string) 
#[1] "QUERY___05nirs_WM_WATMOP079"     
#[2] "QUERY___05nirs_WM_WATMAP075"     
#[3] "QUERY___05nirs_WM_WATMAP037"     
#[4] "QUERY___05nirs_WM_WATMOP071"     
#[5] "QUERY___03nirs_WM_WATMAP168"     
#[6] "QUERY___2022819637_Scalindua_MAnamSca741_C384" 
#[7] "QUERY___237637177_clone_PeruG11"    
#[8] "QUERY___237637158_clone_PeruD2"    
#[9] "QUERY___237637172_clone_PeruD12"    
#[10] "QUERY___237637168_clone_PeruE11"    
相關問題