是否存在与设置value=TRUE的grep等效的stringr函数?
用stringr实现
grep(value = TRUE)的等效效果 想要在stringr里复刻grep("a", x, value = TRUE)的结果——只返回匹配到的元素、完全规避NA,str_subset()就是你要找的精准替代工具:
library(stringr) x <- c("a", "b", "a") str_subset(x, "a") # 返回 "a" "a"
为什么str_extract()达不到预期?因为它的核心逻辑是提取每个元素内匹配的字符串片段,不匹配的元素自然会返回NA;而str_subset()和grep(value = TRUE)的逻辑完全对齐:直接筛选整个向量中能匹配正则表达式的原元素,不会保留不匹配的位置,也就不会产生NA。
如果非要用str_extract()模拟这个效果,也可以后续过滤NA,但显然str_subset()更直接高效:
# 仅作演示,不推荐这种绕路方式 na.omit(str_extract(x, "a"))
所以优先用str_subset()就对啦,完美匹配你的需求~
内容的提问来源于stack exchange,提问作者David Rubinger
相关产品推荐
相关产品推荐

