我想将字母数字向量转换为数字向量。现在,我正在使用正则表达式但只有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"
如何使用独特的正则表达式或任何其他方法将此简化为一次调用? 提前谢谢。
答案 0 :(得分:1)
如果使用基数R,您将需要使用级联调用来进行不同的替换。
但是,您可以使用gsubfn包,使用替换列表进行简化。
library(gsubfn)
x <- c('a12,12', 'Atr 145 ', ' 14 5,1 4A')
gsubfn('\\D+', list(',' = '.', ''), x)
# [1] "12.12" "145" "145.14"