加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 转换为数字:简化2次gsub调用

发布时间:2020-12-14 05:47:20 所属栏目:百科 来源:网络整理
导读:我想将字母数字向量转换为数字向量.现在,我正在使用正则表达式,但有2次调用gsub: ## wrapping this in function to_numeric - function(x) gsub(',','.',gsub("[^(d|,)]","",x,perl=TRUE))## call it to_numeric(c('a12,12','Atr 145 ',' 14 5,1 4A'))##
我想将字母数字向量转换为数字向量.现在,我正在使用正则表达式,但有2次调用gsub:

## wrapping this in function 
to_numeric <-
  function(x)    gsub(',','.',gsub("[^(d|,)]","",x,perl=TRUE))
## call it 
to_numeric(c('a12,12','Atr 145 ',' 14 5,1 4A'))
## [1] "12.12"  "145"    "145.14"

如何使用独特的正则表达式或任何其他方法将此简化为一次调用?
提前致谢.

解决方法

如果使用基数R,您将需要使用级联调用来进行不同的替换.

但是,您可以使用gsubfn软件包,使用替换列表进行简化.

library(gsubfn)

x <- c('a12,1 4A')

gsubfn('D+',list(',' = '.',''),x)
# [1] "12.12"  "145"    "145.14"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读