我在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)
答案 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