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

Extracting Numeric Values in R (from a Free text)

我正在尝试从向量中提取年龄(数值),尝试了以下方法但没有成功

示例:-

    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)

这是你想要的吗:

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