在R中提取数字值(来自自由文本)

时间:2017-06-07 17:33:40

标签: r regex stringr

我正在尝试从矢量中提取年龄(数值),尝试以下但是工作

实施例: -

    a <- "age-32 agge32 age 45 aage 56 agee 34"
    b <- gsub("[Aa]g.e?"," age ",a)
    sa <- strsplit(x=b, split="\\s")
    age <- stringr::str_extract(sa, "(age?)(\\s[^\\s]+){1}")
     (or)
    age <- grep("(([^\\s]+\\s){0}(age)(\\s[^\\s]+){1})",sel,value = TRUE)

1 个答案:

答案 0 :(得分:1)

这就是你想要的:

library(stringr)

as.numeric(str_extract_all(a,"\\d+")[[1]])

或使用gregexprregmatches BASE R

as.numeric(regmatches(a,gregexpr("\\d+",a))[[1]])

或在 BASE R 中使用grepstrsplit

as.numeric(grep("\\d+",strsplit(a,split=" |-|[a-zA-Z]")[[1]],value=T))

<强>输出

[1] 32 32 45 56 34