我在一个表格中有一个“人口统计”列,例如“成人18-34民族=西班牙裔/所有”。我想从中提取18-34岁年龄段。您能帮忙吗?最好提供Stringr软件包的解决方案。
输出应该像 演示版 18-34岁 预先感谢
答案 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"