如果我在R中有一个字符串,比如说,
x1 <- "abcAGE 13 dafkdj" # I want to get 13
我希望在&#34; AGE&#34;之后提取13号从中。数字可能有一位数或多位数。在&#34; AGE&#34;之后也可能没有空间。 &#34; 13&#34;之后没有空格。例如,
x2 <- "abcAGE7 dafkdj" # I want to get 7
x3 <- "abcAGE 189dafkdj" # I want to get 189
如何在R中获得该号码?感谢。
现在,如果字符串有两个&#34; AGE&#34; s,例如,
x4 <- "abcAGE7 dafkdjAGE25ijdfkdf" # I want to get 7 and 25
如何获得这两个数字?
答案 0 :(得分:2)
sHere是一个使用sub
并提取捕获组的选项:
> sub(".*AGE ?(\\d+).*", "\\1", x1)
[1] "13"
> sub(".*AGE ?(\\d+).*", "\\1", x2)
[1] "7"
> sub(".*AGE ?(\\d+).*", "\\1", x3)
[1] "189"
将其包裹在as.numeric
/ as.integer
中以根据需要进行转换。
对于稍微复杂的x4
案例,您可以使用
trimws(regmatches(x4, gregexpr("(?<=AGE) ?\\d+", x4, perl=TRUE))[[1]])
[1] "7" "25"