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

在R语言中如何删除字符向量中的重复字符串

R语言删除字符向量内单字符串重复单词的实现方案

你给出的场景是删除单个字符串内连续出现的重复单词,以下是两种可直接复用的实现方式:

方法1:基础正则替换(无需额外依赖包,推荐)

直接通过gsub匹配连续重复的单词做替换,仅删除连续重复的内容,符合你的示例需求:

# 定义原始向量
original <- c("hi hi there", "hello you", "you good you good")
# 执行去重
desired <- gsub("\\b(\\S+)(?:\\s+\\1)+\\b", "\\1", original, perl = TRUE)

# 验证输出
print(desired)
# 输出结果:[1] "hi there"  "hello you" "you good"

正则逻辑说明:

  • \\b匹配单词边界,避免误匹配单词内部的重复字符
  • (\\S+)为捕获组,匹配单个完整单词
  • (?:\\s+\\1)+匹配1次及以上的「空白符 + 捕获组匹配到的相同单词」
  • 最终替换为\\1即仅保留单次的单词,去除重复部分

方法2:拆分后去重拼接(适合自定义去重规则)

如果需要灵活调整去重逻辑(比如删除所有重复单词,不管是否连续),可以用拆分再处理的方式:

# 所有重复单词都删除(无论是否连续)
desired <- sapply(strsplit(original, "\\s+"), function(x) paste(unique(x), collapse = " "))

# 仅删除连续重复单词的版本
desired <- sapply(strsplit(original, "\\s+"), function(x) {
  paste(x[!c(FALSE, x[-1] == x[-length(x)])], collapse = " ")
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:27:03