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

R语言如何移除下划线分隔字符串中连续重复的相邻词项

R语言实现:自动移除下划线分隔字符串中的连续重复词

实现逻辑

  • 将输入字符串按下划线拆分为独立词项
  • 逐个比对相邻词项,仅保留与前一个词项不重复的内容
  • 将保留的词项重新用下划线拼接为结果字符串,全程无需预先指定任何固定词项

通用函数代码

remove_consecutive_dup <- function(str_vec) {
  vapply(str_vec, function(s) {
    # 按下划线拆分单个字符串
    word_parts <- strsplit(s, "_", fixed = TRUE)[[1]]
    # 标记需要保留的词:第一个词必保留,后续词仅在和前一个词不同时保留
    keep_mask <- c(TRUE, word_parts[-1] != word_parts[-length(word_parts)])
    # 拼接成最终字符串
    paste(word_parts[keep_mask], collapse = "_")
  }, FUN.VALUE = character(1L), USE.NAMES = FALSE)
}

效果验证

用题目给出的示例测试:

# 示例输入
input <- c(
  "ethnicity_ethnicity_selected_choice",
  "child_1_child_child_pid"
)

# 调用函数
remove_consecutive_dup(input)

运行输出和期望结果完全一致:

[1] "ethnicity_selected_choice" "child_1_child_pid"

说明:该函数对连续出现2次以上的重复词同样生效,例如输入"x_x_x_y_y_z",处理后会得到"x_y_z"。

内容的提问来源于stack exchange,提问作者its.me.adam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:33:23