使用Stringr从字符串中删除多个字符

时间:2016-05-26 02:25:29

标签: regex r tidyr stringr

我在R中使用字符串相当新。下面是一个简单的数据框,其中包含各种不同的电话号码输入,包括一些根本没有数字的条目,只有括号或连字符。我正在寻找一种方法将所有数字转换为9999999999.所以基本上我想删除所有非数字符号和空格。没有数字的条目将变为空单元格。

使用gsub或使用Stringr或Tidyr有一种简单的方法吗?我不确定解决方案是否需要正则表达式。

names<-c("Mike","James","Melissa","Chris","John","Jake")

numbers<-c("(999)-999-9999","999-999-9999","(999) 999-9999","(999)-999 9999","(   )","    -")

Names2<-data.frame(numbers,names)

Names2$numbers<-as.character(Names2$numbers)

1 个答案:

答案 0 :(得分:1)

我们可以使用

Names2$numbers <- gsub("\\D+", "", Names2$numbers)
as.numeric(Names2$numbers)
#[1] 9999999999 9999999999 9999999999 9999999999         NA         NA

正如OP提到的string

library(stringr)
as.numeric(str_replace_all(Names2$numbers, "\\D+", ""))
#[1] 9999999999 9999999999 9999999999 9999999999         NA         NA