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

如何在不拼接拆分的情况下去除多个向量间的全部重复元素?

问题:移除多向量间的全部重复元素(完全剔除重复项)

需要移除多个向量中所有出现过不止一次的元素——只要某个元素在任意两个及以上向量里出现,就把它从所有包含它的向量里彻底删掉。示例如下:

输入代码:

a <- c("dog", "fish", "cow")
b <- c("dog", "horse", "mouse")
c <- c("cat", "sheep", "mouse")

期望输出:

a <- c("fish", "cow")
b <- c("horse")
c <- c("cat", "sheep")

核心疑问:能否在不拼接向量再拆分的前提下实现这个需求?

解决方案

当然可以,不用拼接拆分也能搞定,具体实现步骤如下:

  1. 把所有目标向量存入一个列表,方便统一统计元素出现次数
  2. 统计所有元素在跨向量中的总出现频次
  3. 筛选出仅出现过一次的元素
  4. 用这些唯一元素分别过滤原向量

对应R代码:

# 将目标向量存入列表
vec_list <- list(a = a, b = b, c = c)

# 统计所有元素的跨向量出现频次
element_counts <- table(unlist(vec_list))

# 找出仅出现一次的元素
unique_elements <- names(element_counts[element_counts == 1])

# 逐个过滤原向量
a <- vec_list$a[vec_list$a %in% unique_elements]
b <- vec_list$b[vec_list$b %in% unique_elements]
c <- vec_list$c[vec_list$c %in% unique_elements]

# 验证结果
a
#> [1] "fish" "cow"
b
#> [1] "horse"
c
#> [1] "cat"   "sheep"

这里全程没有把向量拼接后再拆分回原结构,只是通过列表做统一统计,再分别对原向量做筛选,完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:37:39