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

如何去除tibble列字符串中的重复双字符序列并保留8位长度?

解决方案

核心思路

借助tidyverse内置的stringr包,用正则匹配并移除连续重复的双字符序列,最终得到固定8位的目标字符串。

代码实现

假设你的tibble名为df,待处理列名为target_col,执行以下代码即可完成清洗:

library(tidyverse)

df_cleaned <- df %>%
  # 替换所有连续重复的双字符为单个双字符
  mutate(target_col = str_replace_all(target_col, "(..)\\1", "\\1")) %>%
  # 极端情况(多次重复)下强制截取前8位,保证结果长度合规
  mutate(target_col = str_sub(target_col, 1, 8))

正则逻辑说明

  • (..):捕获任意两个连续字符作为匹配分组
  • \\1:引用上述捕获的分组,精准匹配与该分组完全一致的重复双字符
  • str_replace_all会遍历字符串,替换所有符合规则的重复序列

示例验证

用你给出的异常字符串测试,结果如下:

  • 输入ABABCDEF12 → 处理后ABCDEF12
  • 输入ABCDCDEF12 → 处理后ABCDEF12
  • 输入ABCDEFEF12 → 处理后ABCDEF12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:57:03