string <- c("50% something", "something100% more", "Both6% and also60%")
我无法想象如何在'%'之前获得第一次出现的数字。请注意,string
中可能会出现各种字符。我上面string
的结果是:
[1] 50 100 6
答案 0 :(得分:3)
您可以使用str_extract
中的stringr
来提取%
之前的第一组数字。在这里,我使用了周围(?=%)
来匹配数字,然后是%
library(stringr)
as.numeric(str_extract(string, '\\d+(?=%)'))
#[1] 50 100 6
对于第二种情况
string1 <- c(string, "50people but 20%")
as.numeric(str_extract(string1, '\\d+(?=%)'))
#[1] 50 100 6 20
答案 1 :(得分:3)
使用sub,
> string <- c("50% something", "something100% more", "Both6% and also60%")
> sub("^.*?(\\d+)%.*", "\\1", string)
[1] "50" "100" "6"
> as.numeric(sub("^.*?(\\d+)%.*", "\\1", string))
[1] 50 100 6