r - 删除向量中包含 R 中纯数字的元素
问题描述
我有一个包含字符元素的向量,例如
"2-CONTROL", "DAN-COLOR", "3M", "DIPLOMVEJ 373", "ABE 34 HUN"
我想过滤掉字符串中具有独立数字的元素。如果数字附加到字母或连字符,则不应过滤。
上面的向量在过滤后将给出以下结果。
"2-CONTROL", "DAN-COLOR", "3M"
我曾尝试"\\b\\d+\\b"
在 grepl 中使用,但它也会过滤掉"2-CONTROL"
解决方案
1)用 X 替换每个不是数字且不是空格的字符,然后使用您的正则表达式:
pat <- "\\b\\d+\\b" # from question
x[!grepl(pat, gsub("[^[:space:][:digit:]]", "X", x))]
## [1] "2-CONTROL" "DAN-COLOR" "3M"
2)另一种可能性是在空格上拆分并拒绝包含所有数字元素的任何内容。
x[sapply(strsplit(x, "\\s+"), function(x) !any(grepl("^\\d+$", x)))]
## [1] "2-CONTROL" "DAN-COLOR" "3M"
推荐阅读
- c# - .NET Entity Framework - 重复实体
- json - getUpstreamRun from JSONArray 获取自 Build 原因
- caching - 如何在 Symfony 4.4 中为学说设置默认缓存生命周期?
- vue.js - Vue.js:无法使用“v-on”捕获具有名称点的事件
- tensorflow - 每次训练模型时结果不同
- logging - Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别
- node.js - ionViewWillEnter 在进入页面时不起作用
- c# - 如何将动态生成的列与键值对进行数据绑定?
- r - 奇怪的 igraph 行为,生成重复的顶点
- apache-kafka - 当我们使用 kafka 流时,kafka serde 配置应该是什么