r - 如何`grep()`只有数字和浮点数以及带有数字/浮点数的符号而不是带有数字的字符
问题描述
我有一个包含数字、字符和符号的数据集,我试过了
grep("[[:digit:]][[:punct:]]", input, value=T)
但是结果是:
[1] "0.05" "0.001" "0.01" "bb2+" "0.5" "0.1" "0.0001"
[8] "1.5" "2.5" "1.0" "aa(2+)" "0.2" "0.02" "0.3"
[15] "2." "1." "0.4" "3." "1.2" "0.03" "2.0"
[22] "10-AB" "0.6" "0.8" "3.5" "0.9" "WK4+" "5'"
[29] "0.005" "1.3" "1.6" "0.04" "1.4" "5-year" "1.8"
[36] "0.7" "1.1" "4." "1.7" "4.5" "3.0" "3'"
您仍然可以看到带有字母字符的结果。想知道是否有更好的方法来仅grep()
使用数字/浮点数/符号字符。
非常感谢您的回复!
抱歉,在此问题的先前版本中没有提供预期的结果和输入。我已将其编辑如下:
输入 :
input <- c("0.05","0.001","0.01","bb2+","0.5","0.1","0.0001", "1.5","2.5","1.0","aa(2+)","0.2","0.02","0.3"
,"2.","1.","0.4","3.","1.2","0.03","2.0"
,"10-AB","0.6","0.8","3.5","0.9","WK4+","5'"
,"0.005","1.3","1.6","0.04","1.4","5-year","1.8"
,"0.7","1.1","4.","1.7","4.5","3.0","3'")
预期输出:
[1] "0.05" "0.001" "0.01" "0.5" "0.1" "0.0001" "1.5"
[8] "2.5" "1.0". "0.2" "0.02" "0.3" "2." "1."
[15] "0.4" "3." "1.2" "0.03" "2.0" "0.6" "0.8"
[22] "3.5" "0.9". "5'" "0.005" "1.3" "1.6" "0.04"
[29] "1.4" "1.8" "0.7" "1.1" "4." "1.7" "4.5"
[36] "3.0" "3'"
解决方案
一种方法是排除所有具有任何字母字符的元素。使用grep
我们可以invert = TRUE
用来获取不包含任何字母的元素。
grep("[[:alpha:]]", input, value = TRUE, invert = TRUE)
# [1] "0.05" "0.001" "0.01" "0.5" "0.1" "0.0001" "1.5" "2.5"
# [9] "1.0" "0.2" "0.02" "0.3" "2." "1." "0.4" "3."
#[17] "1.2" "0.03" "2.0" "0.6" "0.8" "3.5" "0.9" "5'"
#[25] "0.005" "1.3" "1.6" "0.04" "1.4" "1.8" "0.7" "1.1"
#[33] "4." "1.7" "4.5" "3.0" "3'"
推荐阅读
- postgis - 有什么方法可以在地理上获得准确的 ST_MinimumBoundingCircle 计算?
- apache-spark - 如果您不使用纱线而是火花集群,如何设置火花提交重试次数?
- spring-security - 从 xml 迁移到 java 配置会改变过滤器链中过滤器的顺序
- c# - CosmosDB 更新 c#:无法确定 System.String[] 类型的 JSON 对象类型
- html - 单击链接时切换菜单关闭
- git - 如何在 linux 上的 azure app 服务中通过 git 本地分发构建 docker
- javascript - 将一个对象的属性包装到另一个对象 - JavaScript
- python - Python Pandas pivot_table - 一列中的值计数
- erpnext - 如何使用 frappe.db.delete 语法删除一条记录?
- r - 基于与 sf 的距离对选择点