string <- c("50% something", "something100% more", "Both6% and also60%")
我无法弄清楚如何在“%”之前获得该数字的首次出现。注意,各种字符都可以出现在
string
中。我从上面的string
得到的结果是:[1] 50 100 6
最佳答案
您可以使用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