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

如何一步完成R数据框中字符串的末尾下划线删除与中间替换

把两步字符串处理合并成单步mutate操作

就你给出的这个数据框:

data = data.frame('A' = c('A_A_', 'B_B_'))

有两种简单方法能在一次mutate里完成需求——删掉末尾下划线,同时把中间的下划线换成->:

方法1:嵌套使用str_remove和str_replace

用dplyr和stringr的函数嵌套起来,在同一个mutate里先清掉末尾的下划线,再替换中间的:

library(dplyr)
library(stringr)

data_processed <- data %>%
  mutate(A = str_replace(str_remove(A, "_$"), "_", "->"))

方法2:单个正则表达式一步搞定

写个正则表达式直接匹配目标格式,一次性完成替换:

data_processed <- data %>%
  mutate(A = str_replace(A, "^(.)_(.)_$", "\\1->\\2"))

这个正则的逻辑很直观:

  • ^(.) 捕获字符串开头的第一个字符
  • _(.) 捕获中间下划线后面的第二个字符
  • _$ 匹配末尾的下划线
  • 最后把捕获到的两个字符用->连接,顺便去掉末尾的下划线。

处理完的结果如下:

> data_processed
      A
1 A->A
2 B->B

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:22:38