我有一个带有这些条目的向量:
[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"
我想将"QUERY___"
附加到那些尚未包含它的元素的开头。我想出了如何使用grepl
获取逻辑向量,告诉我哪些元素没有"QUERY"
,但不知道如何使用该向量来更改原始向量。
答案 0 :(得分: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"
答案 1 :(得分: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"