使用 Stringr 从字符串中删除多个字符
Removing Multiple Characters from a String Using Stringr
我对在 R 中使用字符串还很陌生。下面是一个简单的数据框,其中包含 phone 数字的各种不同输入,包括一些根本没有数字且只有括号或连字符的条目。我正在寻找一种将所有数字转换为 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)
我们可以使用
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
我对在 R 中使用字符串还很陌生。下面是一个简单的数据框,其中包含 phone 数字的各种不同输入,包括一些根本没有数字且只有括号或连字符的条目。我正在寻找一种将所有数字转换为 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)
我们可以使用
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