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

如何在R语言中拆分字符串,分离数字与字符部分?

R语言规则字符串拆分解决方案

直接用正则表达式就能搞定你的需求,具体代码如下:

# 原始规则字符串
rule <- "X[,16] <= -0.664 & X[,11] <= -2.1891 & X[,17] >= -0.4138"

# 提取数字部分
num_part <- as.numeric(stringr::str_extract_all(rule, "-?\\d+\\.?\\d*")[[1]])
# 输出结果:num_part = c(16, -0.664, 11, -2.1891, 17, -0.4138)

# 生成字符结构部分
char_part <- rule
# 替换列索引中的数字
char_part <- gsub("(?<=X\\[,)\\d+(?=\\])", "", char_part, perl = TRUE)
# 替换阈值中的数字
char_part <- gsub("(?<=[<>]=\\s*)-?\\d+\\.?\\d*", "", char_part, perl = TRUE)
# 整理空格匹配目标格式
char_part <- gsub("\\s+<=\\s+", "<= ", char_part)
char_part <- gsub("\\s+>=\\s+", " >= ", char_part)
char_part <- gsub(" <= ", "<= ", char_part)
# 最终输出:char_part = "X[,]<= & X[,] <= & X[,] >="

代码说明

  • 提取数字部分:用stringr::str_extract_all匹配所有包含负号、整数、小数的数字片段,转成数值型向量。
  • 生成字符部分:用正向前后断言正则精准替换列索引和阈值里的数字,再调整空格匹配你需要的格式。

内容的提问来源于stack exchange,提问作者mr.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:50:49