首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从匹配模式的向量中删除所有元素?

如何从匹配模式的向量中删除所有元素?
EN

Stack Overflow用户
提问于 2017-10-18 18:07:05
回答 2查看 4.5K关注 0票数 3
代码语言:javascript
复制
ncvars = c("prate", "arate", "wpd", "Atm1", "Atm2", "area", "fC", "bas__1", "bas__asssaa", "bas__Clow", "bas__g2333e", "baser__arge", "bas__Aow", "bas__Aass")   

现在,我要删除以下所有元素

  • 确切地说是名字area
  • 匹配此字符串bas__

我该怎么做?

试用版

代码语言:javascript
复制
patterns <- c("bas__", "area")
ncvars %>%
  filter(.,grepl(paste(patterns, collapse="|")))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-18 18:11:01

您只需用grepl否定!,也可以精确匹配,需要^..$锚点来匹配字符串的开始(^)和结束($):

代码语言:javascript
复制
ncvars[!grepl('^area$|bas__', ncvars)]
代码语言:javascript
复制
ncvars
# [1] "prate"       "arate"       "wpd"         "Atm1"        "Atm2"        "area"        "fC"          "bas__1"     
# [9] "bas__asssaa" "bas__Clow"   "bas__g2333e" "baser__arge" "bas__Aow"    "bas__Aass"  
ncvars[!grepl('^area$|bas__', ncvars)]
# [1] "prate"       "arate"       "wpd"         "Atm1"        "Atm2"        "fC"          "baser__arge"
票数 8
EN

Stack Overflow用户

发布于 2017-10-18 18:34:48

tidyverse解决方案:

代码语言:javascript
复制
library(stringr)
stringr::str_subset(ncvars, pattern = "^area$|^bas__", negate = TRUE)
[1] "prate"       "arate"       "wpd"         "Atm1"        "Atm2"        "fC"          "baser__arge"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46816521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档