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

R语言如何从混合整数与Pn[ab]?格式的字符向量中提取数值

问题原因

你现有代码的错误出在substr的参数调用逻辑:

  1. substr(figc, 2, 1)的起始位置为2、终止位置为1,无法提取到有效字符,返回的空字符串强制转数值就会生成NA
  2. 即使修正参数顺序,这种固定位置截取的写法也无法兼容P后接多位数字、或带a/b后缀的场景,比如P12b截取第2位只能得到1,不符合转换要求

解决方法

你只需要用正则替换删除所有非数字字符,再转数值即可,不需要单独判断是否以P开头:

基础R实现

fig <- as.numeric(gsub("\\D", "", figc))

stringr包实现

library(stringr)
fig <- as.numeric(str_replace_all(figc, "\\D", ""))

其中\\D是正则表达式语法,匹配所有非数字字符,替换为空后剩下的纯数字字符串就可以正常转成数值,完美匹配你的转换规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:02