如何使用stringr包函数移除字符向量中的所有空白字符串?
原因说明
str_remove_all()的作用是对向量中每个元素的内容做匹配替换,不会修改向量的总长度,所以只会把全空白元素的内容替换为空字符串,达不到删除元素的效果。
正确实现方法
stringr中有两种常用写法可以实现和原基础函数一致的过滤效果:
- 用
str_detect()(和基础函数grepl()功能对应)做匹配判定,再取索引筛选:
library(stringr) b[!str_detect(b, "^\\s+$")]
运行后返回结果和原有代码完全一致:
[1] "books" "animals" "frogs"
- 用更简洁的专用子集提取函数
str_subset(),直接指定negate参数排除匹配项:
str_subset(b, "^\\s+$", negate = TRUE)
内容的提问来源于stack exchange,提问作者Ibrahimli
相关产品推荐
相关产品推荐

