R 无法从字符串中获取数字

R 无法从字符串中获取数字,r,stringr,R,Stringr,我在表格中有一个人口统计栏,如“成年人18-34族裔=西班牙裔/所有人”,我想从中提取18-34岁的年龄组。你能帮忙吗?最好提供带有Stringr包的解决方案 输出应该是 演示 18-34 提前感谢首先,我们可以从字符串中提取数字,使用-提取所有数值和单独的数字: 输入数据 str="Adults 18-34 Ethnic = Hispanic/All" 代码 paste(as.numeric(str_extract_all(str, "[0-9]+")[[1]]),collapse ="-"

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

输出应该是 演示 18-34
提前感谢

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

输入数据

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

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

[1] "18-34"

使用
baser
中的
gsub
,我们从字符串的开头(
^
)匹配不是数字的字符(
[^0-9]+
),或者匹配以空格后跟其他字符开头的字符,并将其替换为空白(


或者使用
str\u extract
stringr
中提取
,以匹配一个或多个数字(
\\d+
),后跟
-
和一个或多个数字(
\\d+

数据
str1到目前为止您尝试了什么?
gsub("^[^0-9]+|\\s+.*", "", str1)
#[1] "18-34"
library(stringr)
str_extract(str1, "\\d+-\\d+")
#[1] "18-34"
str1 <-  "Adults 18-34 Ethnic = Hispanic/All"