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

R语言中反转数字字符串短横线分隔格式的问题求助

R语言编码调换解决方案

可以用stringr包的str_replace_all配合正则表达式实现,核心是精准捕获短横线前后的数字组,再调换顺序输出:

  1. 先确保安装并加载stringr包:
install.packages("stringr") # 首次使用需安装
library(stringr)
  1. 编写替换逻辑
    针对你的编码格式,用正则表达式捕获短横线前后的所有数字,再将两组内容调换位置:
# 测试用编码向量
codes <- c("12-4567", "4567-12", "9-87654321", "123-45")

# 执行替换
fixed_codes <- str_replace_all(codes, "^(\\d+)-(\\d+)$", "\\2-\\1")

# 查看结果
fixed_codes
# 输出:"4567-12"    "12-4567"    "87654321-9" "45-123"
  1. 应用到数据集列
    如果你的编码是数据框中的一列,比如df$code,直接替换即可:
df$code <- str_replace_all(df$code, "^(\\d+)-(\\d+)$", "\\2-\\1")

正则说明

  • ^和$:确保匹配整个编码字符串,避免部分字符被误替换
  • (\\d+):捕获短横线前后的1到N位数字(\\d匹配数字,+表示至少1个),两个括号对应两个分组
  • \\2-\\1:替换时将第二个捕获组(短横线后内容)放在前面,第一个捕获组(短横线前内容)放在后面,保持数字顺序不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:12:04