r-删除列表中不包含模式的元素



Hel-lo也许这是一个愚蠢的问题,但我有一个列表,比如:

> tiplabel
[1] "SEQ_009163825"                                  "SEQ_009163870"                                 
[3] "SEQ_009046380"                                  "SEQ_009046144"                                 
[5] "SEQ_009448068"                                  "AXY04854"                                     
[7] "SEQ_039113"                                     "AXY05113"                                     
[9] "SEQ_612321"                                     "AMM72729"                                     
[11] "SEQ_+__CIO_sp"      "SEQ_-__CAZ_sp"  

并且我希望只保留包含CCD_ 1的元素两个下划线。

并获得

> tiplabel
[1]"SEQ_+__CIO_sp"     
[2]"SEQ_-__CAZ_sp"

有人有主意吗?

我们可以将grepvalue = TRUE一起使用

grep('__', tiplabel, value = TRUE)
#[1] "SEQ_+__CIO_sp" "SEQ_-__CAZ_sp"

或使用stringr::str_subset

stringr::str_subset(tiplabel, '__')

您可以使用%like%运算符(通过data.table包加载,但从内存中它实际上在另一个包中(:

library(data.table)
tiplabel[tiplabel %like% "__"]

最新更新