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

如何移除字符串向量中的重复对,仅保留唯一元素?

解决R语言中移除所有重复元素(仅保留单次出现元素)的问题

嘿,我懂你的需求——你要的不是普通的去重(unique()做的是保留每个元素的首次出现,删掉后续重复副本),而是彻底移除所有出现过不止一次的元素,只留下那些仅出现一次的内容。

下面给你两种简单可行的方法:

方法一:用频次表筛选

先通过table()统计每个元素的出现次数,再筛选出频次为1的元素:

MyString <- c("aaa", "bbb", "ccc", "ddd", "aaa", "ddd")

# 生成元素频次统计表格
element_freq <- table(MyString)
# 提取频次为1的元素名称
result <- names(element_freq[element_freq == 1])

result
# 输出结果:[1] "bbb" "ccc"

方法二:用两次duplicated()检查(更简洁)

duplicated()默认会标记向量中除首次出现外的重复元素,而duplicated(MyString, fromLast = TRUE)会从后往前检查,标记除最后一次出现外的重复元素。把这两个结果取或,再取反,就能精准定位到只出现一次的元素:

MyString <- c("aaa", "bbb", "ccc", "ddd", "aaa", "ddd")

result <- MyString[!duplicated(MyString) & !duplicated(MyString, fromLast = TRUE)]

result
# 输出结果:[1] "bbb" "ccc"

两种方法都能达到你的预期效果,第二种不需要额外生成频次表,操作更直接高效~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:57