You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何提取左括号与%之间的百分比数值?

在R中提取括号与%之间的百分比数字

可以通过正则表达式实现这个需求,下面提供两种常用方法:

方法1:使用base R的sub()函数

先定义原始文本向量:

text <- c("2 (5.7%)", "34 (8.9%)")

利用正则匹配提取目标数字:

result <- sub(".*\\((\\d+\\.\\d+)%\\)", "\\1", text)
# 输出结果
result
# [1] "5.7" "8.9"

如果需要将结果转为数值类型,执行:

as.numeric(result)
# [1] 5.7 8.9

方法2:使用stringr包的str_extract()函数

先安装并加载stringr包(如果未安装):

install.packages("stringr")
library(stringr)

利用正向/反向预查正则直接提取目标内容:

result <- str_extract(text, "(?<=\\()\\d+\\.\\d+(?=%)")
# 输出结果
result
# [1] "5.7" "8.9"

同样可以转为数值类型:

as.numeric(result)
# [1] 5.7 8.9

正则说明

  • .*\\(:匹配左括号(之前的所有内容
  • (\\d+\\.\\d+):捕获一个或多个数字+小数点+一个或多个数字的组合(即目标百分比数字)
  • %\\):匹配右括号前的%符号
  • (?<=\\():反向预查,匹配左括号(之后的位置
  • (?=%):正向预查,匹配%符号之前的位置

内容的提问来源于stack exchange,提问作者alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:01:55