我的数字字符串如下:
972 2 6424979
81|5264627
49-0202-2801986
07.81.48.27.89
0664/3420034
06041 - 8728
并希望获得如下输出:
97226424979
815264627
4902022801986
0781482789
06643420034
060418728
我尝试使用:
as.numeric(gsub("([0-9]+).*$", "\\1", numbers))
但输出中的数字是分开的。
答案 0 :(得分:1)
要获得准确的输出,
#to avoid scientific notation
options(scipen=999)
#find which have leading 0
ind <- which(substring(x, 1, 1) == 0)
y <- as.numeric(gsub("\\D", "", numbers))
y[ind] <- paste0('0', y[ind])
y
#[1] "97226424979" "815264627" "4902022801986" "0781482789" "06643420034" "060418728"
答案 1 :(得分:0)
([0-9]+).*$
将一个数字序列放到第一个非数字\\1
之前。但是,你想要:
numbers <- readLines(n=6)
972 2 6424979
81|5264627
49-0202-2801986
07.81.48.27.89
0664/3420034
06041 - 8728
as.numeric(gsub("\\D", "", numbers))
这取代所有非数字。