无法从字符串中获取数字

时间:2018-09-29 18:07:26

标签: r stringr

我在一个表格中有一个“人口统计”列,例如“成人18-34民族=西班牙裔/所有”。我想从中提取18-34岁年龄段。您能帮忙吗?最好提供Stringr软件包的解决方案。

输出应该像 演示版 18-34岁 预先感谢

2 个答案:

答案 0 :(得分:1)

使用gsub中的base R,我们匹配从字符串开头([^0-9]+)开始不是数字(^)的字符或以一个空格,后跟其他字符,并用空格("")代替

gsub("^[^0-9]+|\\s+.*", "", str1)
#[1] "18-34"

或者使用str_extract中的stringr匹配一个或多个数字(\\d+),然后匹配-和一个或多个数字(\\d+

library(stringr)
str_extract(str1, "\\d+-\\d+")
#[1] "18-34"

数据

str1 <-  "Adults 18-34 Ethnic = Hispanic/All"

答案 1 :(得分:0)

首先,我们可以从字符串中提取数字,使用-提取所有数值和单独的数字:

输入数据

str="Adults 18-34 Ethnic = Hispanic/All"

代码

paste(as.numeric(str_extract_all(str, "[0-9]+")[[1]]),collapse ="-")

输出:

[1] "18-34"