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

R语言中拆分向量元素并交换下划线两侧内容的最简方法

最简实现方法

嘿,这个需求用base R自带的sub()函数就能轻松搞定,不需要额外安装任何包,应该是最简洁的方案了!

步骤分解:

  1. 先确认你的向量定义:
myvec <- c("08AD09144_NACC022453", "08AD8245_NACC657970")
  1. 用sub()配合正则表达式完成交换:
result <- sub("(.*)_(.*)", "\\2_\\1", myvec)

正则逻辑说明:

  • (.*)_(.*) 会把每个字符串分成两个捕获组:下划线左侧的所有内容是第一组\\1,右侧的所有内容是第二组\\2
  • 替换时写成\\2_\\1,就把两组的位置交换,同时保留下划线分隔符
  1. 验证结果:
print(result)
# 输出:
# [1] "NACC022453_08AD09144" "NACC657970_08AD8245"

备选方案(如果你习惯用tidyverse):

如果你平时常用stringr包,也可以用str_replace(),语法几乎一致:

library(stringr)
result <- str_replace(myvec, "(.*)_(.*)", "\\2_\\1")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:57:48