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

如何在R中有条件替换数据框中重复的逗号分隔值

处理逗号分隔重复内容的R实现

原始数据定义

test <- data.frame(data=c("one", "two", "three12, threa12", "four", "five"))

核心需求

找出包含逗号、且逗号两侧内容(去除首尾空格后)重复/近似重复的单元格,将其替换为逗号左侧的内容。

实现代码

借助R语言的stringr包(字符串处理工具)完成,代码如下:

# 未安装stringr先执行:install.packages("stringr")
library(stringr)

# 提取逗号左右两侧内容并去除首尾空格
left_content <- str_trim(str_extract(test$data, "^.*?(?=,)"))
right_content <- str_trim(str_extract(test$data, "(?<=,).*$"))

# 判定匹配条件:存在逗号,且右侧内容是左侧的近似重复(适配示例中的拼写小误差)
match_flag <- !is.na(left_content) & !is.na(right_content) & str_detect(right_content, str_remove(left_content, "\\d"))

# 替换符合条件的单元格
test$data[match_flag] <- left_content[match_flag]

# 查看处理结果
test

补充说明

  • 若需求为完全重复匹配,将match_flag中的判断逻辑改为left_content == right_content即可
  • 执行代码后,示例中的第3个单元格会被替换为three12,其余单元格保持原样

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:20:37